Appendix overview
In this appendix, I report additional exploratory factor analysis (EFA) results that were excluded from the main text of Chapter III, including: (a) unrotated versions of all of the EFA solutions reported in Chapter III; (b) oblimin-transformed (rather than varimax-rotated) versions of all of the EFA solutions reported in Chapter III; and (c) additional varimax-rotated EFA solutions not reported in full in Chapter III because I deemd to be redundant with the reported solutions.
Unrotated solutions
Throughout this dissertation, beginning in Chapter III, I have reported EFA solutions after applying varimax rotation. This rotation, which maximizes the sum of the variances of the squared factor loadings, is intended to make factors more interpretable by producing “simple structure” (Thurstone, 1949). Here, for completeness, I present unrotated EFA solutions for all of the EFAs reported in Chapter III.
Study 1

Study 2

Study 3

Study 4

Varimax-rotated solutions previously deemed redundant
In Chapter III, I focused my interpretation on a subset of the EFA solutions suggested by the three factor retention protocols, excluding those solutions in which additional factors were redundant with the 3-factor (BODY-HEART-MIND) solution. These additional factors tend to explain very little of the shared variance; tend not to be the dominant factor (the factor with the strongest absolute factor loading) for many, if any, mental capacities; and tend to have very weak factor loadings. I include them here for completeness.
Study 1
The factor retention criteria employed in Weisman et al. (2017) suggested retaining 3 factors for all of the studies included in Study 1; see Chapter III. In contrast, parallel analysis suggested retaining 4 factors (instead of 3) for Studies 1b and 1d; minimizing BIC suggested retaining 4 factors (instead of 3) for Study 1c, and 5 factors (instead of 3) for Studies 1a, 1b, and 1d. See Figure A.13.

Study 2
All of the EFA solutions suggested by the three factor retention protocols are reported in full in Chapter III.
Study 3
The factor retention criteria employed in Weisman et al. (2017) suggested retaining 3 factors for all of the age groups included in Study 3; see Chapter III. In contrast, parallel analysis suggested retaining 2 factors (instead of 3) for younger children; and minimizing BIC suggested retaining 4 factors (instead of 3) for adults, and 1 factor (i.e., a “null” solution) for younger children (ages 4-6y). See Figure A.14.

Study 4
All of the EFA solutions suggested by the three factor retention protocols are reported in full in Chapter III, with the exception of the 1-factor (“null”) solution suggested by minimizing BIC for younger children (4-5y). See Figure A.15.

LS0tCnRpdGxlOiAiQXBwZW5kaXggQTogQWRkaXRpb25hbCBFRkEgc29sdXRpb25zIgpvdXRwdXQ6CiAgaHRtbF9ub3RlYm9vazoKICAgIHRvYzogeWVzCiAgICB0b2NfZGVwdGg6IDQKICAgIHRvY19mbG9hdDogeWVzCmFsd2F5c19hbGxvd19odG1sOiB5ZXMKLS0tCgpgYGB7ciBnbG9iYWxfb3B0aW9ucywgaW5jbHVkZSA9IEZ9CmtuaXRyOjpvcHRzX2NodW5rJHNldChmaWcud2lkdGggPSAzLCBmaWcuYXNwID0gMC42NywKICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGUgPSBGLCBlY2hvID0gRikKYGBgCgpgYGB7cn0KIyAjIGZvciBrbml0dGluZyB0byAuZG9jeAojIG91dHB1dDoKIyAgIHdvcmRfZG9jdW1lbnQ6CiMgICAgIHJlZmVyZW5jZV9kb2N4OiAiLi93b3JkLXN0eWxlcy1yZWZlcmVuY2UuZG9jeCIKIyBhbHdheXNfYWxsb3dfaHRtbDogeWVzCiAgIAojICMgZm9yIGtuaXR0aW5nIHRvIC5uYi5odG1sIAojIG91dHB1dDoKIyAgIGh0bWxfbm90ZWJvb2s6CiMgICAgIHRvYzogeWVzCiMgICAgIHRvY19kZXB0aDogNAojICAgICB0b2NfZmxvYXQ6IHllcwpgYGAKCmBgYHtyfQojIHJ1biB1ci1zZXR1cCBzY3JpcHQgKHdoaWNoIHJ1bnMgb3RoZXIgc2NyaXB0cykKc291cmNlKCIuL3NjcmlwdHMvX1NFVFVQLlIiKQoKIyBsb2FkIGluIEVGQXMgJiBuYW1lcyBmcm9tIENoYXB0ZXIgSUlJCnNvdXJjZSgiLi9zY3JpcHRzL3N0b3JlZF9jaDAzLlIiKQpgYGAKCiMgQXBwZW5kaXggb3ZlcnZpZXcKCkluIHRoaXMgYXBwZW5kaXgsIEkgcmVwb3J0IGFkZGl0aW9uYWwgZXhwbG9yYXRvcnkgZmFjdG9yIGFuYWx5c2lzIChFRkEpIHJlc3VsdHMgdGhhdCB3ZXJlIGV4Y2x1ZGVkIGZyb20gdGhlIG1haW4gdGV4dCBvZiBDaGFwdGVyIElJSSwgaW5jbHVkaW5nOiAoYSkgdW5yb3RhdGVkIHZlcnNpb25zIG9mIGFsbCBvZiB0aGUgRUZBIHNvbHV0aW9ucyByZXBvcnRlZCBpbiBDaGFwdGVyIElJSTsgKGIpIG9ibGltaW4tdHJhbnNmb3JtZWQgKHJhdGhlciB0aGFuIHZhcmltYXgtcm90YXRlZCkgdmVyc2lvbnMgb2YgYWxsIG9mIHRoZSBFRkEgc29sdXRpb25zIHJlcG9ydGVkIGluIENoYXB0ZXIgSUlJOyBhbmQgKGMpIGFkZGl0aW9uYWwgdmFyaW1heC1yb3RhdGVkIEVGQSBzb2x1dGlvbnMgbm90IHJlcG9ydGVkIGluIGZ1bGwgaW4gQ2hhcHRlciBJSUkgYmVjYXVzZSBJIGRlZW1kIHRvIGJlIHJlZHVuZGFudCB3aXRoIHRoZSByZXBvcnRlZCBzb2x1dGlvbnMuCgoKIyBVbnJvdGF0ZWQgc29sdXRpb25zCgpUaHJvdWdob3V0IHRoaXMgZGlzc2VydGF0aW9uLCBiZWdpbm5pbmcgaW4gQ2hhcHRlciBJSUksIEkgaGF2ZSByZXBvcnRlZCBFRkEgc29sdXRpb25zIGFmdGVyIGFwcGx5aW5nIHZhcmltYXggcm90YXRpb24uIFRoaXMgcm90YXRpb24sIHdoaWNoIG1heGltaXplcyB0aGUgc3VtIG9mIHRoZSB2YXJpYW5jZXMgb2YgdGhlIHNxdWFyZWQgZmFjdG9yIGxvYWRpbmdzLCBpcyBpbnRlbmRlZCB0byBtYWtlIGZhY3RvcnMgbW9yZSBpbnRlcnByZXRhYmxlIGJ5IHByb2R1Y2luZyAic2ltcGxlIHN0cnVjdHVyZSIgKFRodXJzdG9uZSwgMTk0OSkuIEhlcmUsIGZvciBjb21wbGV0ZW5lc3MsIEkgcHJlc2VudCB1bnJvdGF0ZWQgRUZBIHNvbHV0aW9ucyBmb3IgYWxsIG9mIHRoZSBFRkFzIHJlcG9ydGVkIGluIENoYXB0ZXIgSUlJLgoKYGBge3J9CiMgcmVzZXQgRUZBIHBhcmFtZXRlcnMgdG8gZGVmYXVsdCwgdGhlbiBzZXQgY2hvc2VuIHJvdGF0aW9uIHRvIG5vbmUKc291cmNlKCIuL3NjcmlwdHMvZWZhX3BhcmFtLlIiKQpjaG9zZW5fcm90IDwtICJub25lIgpgYGAKCiMjIFN0dWR5IDEKCmBgYHtyfQplZmFfM19kMWFfYWRfdW5yb3QgPC0gZmFfZnVuKGQxYV9hZF93aWRlX2ksIDMpCmVmYV8zX2QxYl9hZF91bnJvdCA8LSBmYV9mdW4oZDFiX2FkX3dpZGVfaSwgMykKZWZhXzNfZDFjX2FkX3Vucm90IDwtIGZhX2Z1bihkMWNfYWRfd2lkZV9pLCAzKQplZmFfM19kMWRfYWRfdW5yb3QgPC0gZmFfZnVuKGQxZF9hZF93aWRlX2ksIDMpCmBgYAoKYGBge3J9CiMgc3R1ZHkgMWEKcGxvdF9lZmFfM19kMWFfYWRfdW5yb3QgPC0gaGVhdG1hcF9mdW4oZWZhXzNfZDFhX2FkX3Vucm90KSArCiAgbGFicyh0aXRsZSA9ICJTdHVkeSAxYSIsIHN1YnRpdGxlID0gIlVucm90YXRlZCAzLWZhY3RvciBzb2x1dGlvbiIpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCgojIHN0dWR5IDFiCnBsb3RfZWZhXzNfZDFiX2FkX3Vucm90IDwtIGhlYXRtYXBfZnVuKGVmYV8zX2QxYl9hZF91bnJvdCkgKwogIGxhYnModGl0bGUgPSAiU3R1ZHkgMWIiLCBzdWJ0aXRsZSA9ICJVbnJvdGF0ZWQgMy1mYWN0b3Igc29sdXRpb24iKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQoKIyBzdHVkeSAxYwpwbG90X2VmYV8zX2QxY19hZF91bnJvdCA8LSBoZWF0bWFwX2Z1bihlZmFfM19kMWNfYWRfdW5yb3QpICsKICBsYWJzKHRpdGxlID0gIlN0dWR5IDFjIiwgc3VidGl0bGUgPSAiVW5yb3RhdGVkIDMtZmFjdG9yIHNvbHV0aW9uIikgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKCiMgc3R1ZHkgMWQKcGxvdF9lZmFfM19kMWRfYWRfdW5yb3QgPC0gaGVhdG1hcF9mdW4oZWZhXzNfZDFkX2FkX3Vucm90KSArCiAgbGFicyh0aXRsZSA9ICJTdHVkeSAxZCIsIHN1YnRpdGxlID0gIlVucm90YXRlZCAzLWZhY3RvciBzb2x1dGlvbiIpICMgKwogICMgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQpgYGAKCmBgYHtyfQpmaWd1cmVBLjEgPC0gcGxvdF9ncmlkKHBsb3RfZWZhXzNfZDFhX2FkX3Vucm90LCBwbG90X2VmYV8zX2QxYl9hZF91bnJvdCwgCiAgICAgICAgICAgICAgICAgICAgICAgcGxvdF9lZmFfM19kMWNfYWRfdW5yb3QsIHBsb3RfZWZhXzNfZDFkX2FkX3Vucm90LAogICAgICAgICAgICAgICAgICAgICAgIGxhYmVscyA9ICJBVVRPIiwgbmNvbCA9IDQsIHJlbF93aWR0aHMgPSBjKDEsIDEsIDEsIDEuMikpCgpmaWd1cmVBLjFfY2FwIDwtIGFkZF9zdWIoZmlndXJlQS4xLCBzdHJfd3JhcCgiRmlndXJlIEEuMTogRmFjdG9yIGxvYWRpbmdzIGZyb20gZXhwbG9yYXRvcnkgZmFjdG9yIGFuYWx5c2VzIG9mIFN0dWR5IDEgKGFzIHJlcG9ydGVkIGluIENoYXB0ZXIgSUlJKSwgYmVmb3JlIHJvdGF0aW9uLiBBbGwgcmVzdWx0cyBhcmUgZnJvbSBVUyBhZHVsdCBzYW1wbGVzOyBzZWUgQ2hhcHRlciBJSSBmb3IgbWV0aG9kcy4gKEEpIFN0dWR5IDFhLiAoQikgU3R1ZHkgMWIuIChDKSBTdHVkeSAxYy4gKEQpIFN0dWR5IDFkLiBBIGZhY3RvciBsb2FkaW5nIG9mICsxIGluZGljYXRlcyBhIHBlcmZlY3RseSBwb3NpdGl2ZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBtZW50YWwgY2FwYWNpdHkgYW5kIHVuZGVybHlpbmcgY29uc3RydWN0OyBhIGxvYWRpbmcgb2YgLTEgaW5kaWNhdGVzIGEgcGVyZmVjdGx5IG5lZ2F0aXZlIHJlbGF0aW9uc2hpcC4iLCAyMTApLCB4ID0gMCwgaGp1c3QgPSAwKQpgYGAKCmBgYHtyIGZpZ3VyZUEuMSwgaW5jbHVkZSA9IFQsIGZpZy53aWR0aCA9IDksIGZpZy5hc3AgPSAwLjZ9CmdnZHJhdyhmaWd1cmVBLjFfY2FwKQpgYGAKCiMjIFN0dWR5IDIKCmBgYHtyfQplZmFfM19kMl9hZF91bnJvdCA8LSBmYV9mdW4oZDJfYWRfd2lkZV9pLCAzKQplZmFfNF9kMl9hZF91bnJvdCA8LSBmYV9mdW4oZDJfYWRfd2lkZV9pLCA0KQplZmFfM19kMl83OV91bnJvdCA8LSBmYV9mdW4oZDJfNzlfd2lkZV9pLCAzKQpgYGAKCmBgYHtyfQojIGFkdWx0cwpwbG90X2VmYV8zX2QyX2FkX3Vucm90IDwtIGhlYXRtYXBfZnVuKGVmYV8zX2QyX2FkX3Vucm90KSArCiAgbGFicyh0aXRsZSA9ICJBZHVsdHMiLCBzdWJ0aXRsZSA9ICJVbnJvdGF0ZWQgMy1mYWN0b3Igc29sdXRpb24iKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQoKcGxvdF9lZmFfNF9kMl9hZF91bnJvdCA8LSBoZWF0bWFwX2Z1bihlZmFfNF9kMl9hZF91bnJvdCkgKwogIGxhYnModGl0bGUgPSAiQWR1bHRzIiwgc3VidGl0bGUgPSAiVW5yb3RhdGVkIDQtZmFjdG9yIHNvbHV0aW9uIikgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKCiMgY2hpbGRyZW4KcGxvdF9lZmFfM19kMl83OV91bnJvdCA8LSBoZWF0bWFwX2Z1bihlZmFfM19kMl83OV91bnJvdCkgKwogIGxhYnModGl0bGUgPSAiQ2hpZGxyZW4sIDctOXkiLCBzdWJ0aXRsZSA9ICJVbnJvdGF0ZWQgMy1mYWN0b3Igc29sdXRpb24iKSAjICsKICAjIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKYGBgCgpgYGB7cn0KZmlndXJlQS4yIDwtIHBsb3RfZ3JpZChwbG90X2VmYV8zX2QyX2FkX3Vucm90LCBwbG90X2VmYV80X2QyX2FkX3Vucm90LCAKICAgICAgICAgICAgICAgICAgICAgICBwbG90X2VmYV8zX2QyXzc5X3Vucm90LCAKICAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSAiQVVUTyIsIG5jb2wgPSAzLCByZWxfd2lkdGhzID0gYygxLCAxLjIsIDEuMikpCgpmaWd1cmVBLjJfY2FwIDwtIGFkZF9zdWIoZmlndXJlQS4yLCBzdHJfd3JhcCgiRmlndXJlIEEuMjogRmFjdG9yIGxvYWRpbmdzIGZyb20gZXhwbG9yYXRvcnkgZmFjdG9yIGFuYWx5c2VzIG9mIFN0dWR5IDIgKGFzIHJlcG9ydGVkIGluIENoYXB0ZXIgSUlJKSwgYmVmb3JlIHJvdGF0aW9uLiAoQSkgUmVzdWx0cyBmb3IgVVMgYWR1bHRzLCByZXRhaW5pbmcgdGhyZWUgZmFjdG9ycy4gKEIpIFJlc3VsdHMgZm9yIFVTIGFkdWx0cywgcmV0YWluaW5nIGZvdXIgZmFjdG9ycy4gKEMpIFJlc3VsdHMgZm9yIFVTIGNoaWxkcmVuIGFnZXMgNy05eS4gQSBmYWN0b3IgbG9hZGluZyBvZiArMSBpbmRpY2F0ZXMgYSBwZXJmZWN0bHkgcG9zaXRpdmUgcmVsYXRpb25zaGlwIGJldHdlZW4gbWVudGFsIGNhcGFjaXR5IGFuZCB1bmRlcmx5aW5nIGNvbnN0cnVjdDsgYSBsb2FkaW5nIG9mIC0xIGluZGljYXRlcyBhIHBlcmZlY3RseSBuZWdhdGl2ZSByZWxhdGlvbnNoaXAuIiwgMjEwKSwgeCA9IDAsIGhqdXN0ID0gMCkKYGBgCgpgYGB7ciBmaWd1cmVBLjIsIGluY2x1ZGUgPSBULCBmaWcud2lkdGggPSA5LCBmaWcuYXNwID0gMC42fQpnZ2RyYXcoZmlndXJlQS4yX2NhcCkKYGBgCgojIyBTdHVkeSAzCgpgYGB7cn0KZWZhXzNfZDNfYWRfdW5yb3QgPC0gZmFfZnVuKGQzX2FkX3dpZGVfaSwgMykKZWZhXzNfZDNfNzlfdW5yb3QgPC0gZmFfZnVuKGQzXzc5X3dpZGVfaSwgMykKZWZhXzJfZDNfNDZfdW5yb3QgPC0gZmFfZnVuKGQzXzQ2X3dpZGVfaSwgMikKZWZhXzNfZDNfNDZfdW5yb3QgPC0gZmFfZnVuKGQzXzQ2X3dpZGVfaSwgMykKYGBgCgpgYGB7cn0KIyBhZHVsdHMKcGxvdF9lZmFfM19kM19hZF91bnJvdCA8LSBoZWF0bWFwX2Z1bihlZmFfM19kM19hZF91bnJvdCkgKwogIGxhYnModGl0bGUgPSAiQWR1bHRzIiwgc3VidGl0bGUgPSAiVW5yb3RhdGVkIDMtZmFjdG9yIHNvbHV0aW9uIikgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKCiMgb2xkZXIgY2hpbGRyZW4KcGxvdF9lZmFfM19kM183OV91bnJvdCA8LSBoZWF0bWFwX2Z1bihlZmFfM19kM183OV91bnJvdCkgKwogIGxhYnModGl0bGUgPSAiT2xkZXIgY2hpbGRyZW4sIDctOXkiLCBzdWJ0aXRsZSA9ICJVbnJvdGF0ZWQgMy1mYWN0b3Igc29sdXRpb24iKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQoKIyB5b3VuZ2VyIGNoaWxkcmVuCnBsb3RfZWZhXzNfZDNfNDZfdW5yb3QgPC0gaGVhdG1hcF9mdW4oZWZhXzNfZDNfNDZfdW5yb3QpICsKICBsYWJzKHRpdGxlID0gIllvdW5nZXIgY2hpbGRyZW4sIDQtNnkiLCBzdWJ0aXRsZSA9ICJVbnJvdGF0ZWQgMy1mYWN0b3Igc29sdXRpb24iKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQoKcGxvdF9lZmFfMl9kM180Nl91bnJvdCA8LSBoZWF0bWFwX2Z1bihlZmFfMl9kM180Nl91bnJvdCkgKwogIGxhYnModGl0bGUgPSAiWW91bmdlciBjaGlsZHJlbiwgNC02eSIsIHN1YnRpdGxlID0gIlVucm90YXRlZCAyLWZhY3RvciBzb2x1dGlvbiIpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCmBgYAoKYGBge3J9CmZpZ3VyZUEuMyA8LSBwbG90X2dyaWQocGxvdF9lZmFfM19kM19hZF91bnJvdCwgcGxvdF9lZmFfM19kM183OV91bnJvdCwKICAgICAgICAgICAgICAgICAgICAgICBwbG90X2VmYV8zX2QzXzQ2X3Vucm90LCBwbG90X2VmYV8yX2QzXzQ2X3Vucm90LAogICAgICAgICAgICAgICAgICAgICAgIGxhYmVscyA9ICJBVVRPIiwgbmNvbCA9IDQsIHJlbF93aWR0aHMgPSBjKDEsIDEsIDEsIDEpKQoKZmlndXJlQS4zX2NhcCA8LSBhZGRfc3ViKGZpZ3VyZUEuMywgc3RyX3dyYXAoIkZpZ3VyZSBBLjM6IEZhY3RvciBsb2FkaW5ncyBmcm9tIGV4cGxvcmF0b3J5IGZhY3RvciBhbmFseXNlcyBvZiBTdHVkeSAzIChhcyByZXBvcnRlZCBpbiBDaGFwdGVyIElJSSksIGJlZm9yZSByb3RhdGlvbi4gKEEpIFJlc3VsdHMgZm9yIFVTIGFkdWx0cy4gKEIpIFJlc3VsdHMgZm9yIFVTIGNoaWxkcmVuIGFnZXMgNy05eS4gKEMpIFJlc3VsdHMgZm9yIFVTIGNoaWxkcmVuIGFnZXMgNC02eSwgcmV0YWluaW5nIHRocmVlIGZhY3RvcnMuIChEKSBSZXN1bHRzIGZvciBVUyBjaGlsZHJlbiBhZ2VzIDQtNnksIHJldGFpbmluZyB0d28gZmFjdG9ycy4gQSBmYWN0b3IgbG9hZGluZyBvZiArMSBpbmRpY2F0ZXMgYSBwZXJmZWN0bHkgcG9zaXRpdmUgcmVsYXRpb25zaGlwIGJldHdlZW4gbWVudGFsIGNhcGFjaXR5IGFuZCB1bmRlcmx5aW5nIGNvbnN0cnVjdDsgYSBsb2FkaW5nIG9mIC0xIGluZGljYXRlcyBhIHBlcmZlY3RseSBuZWdhdGl2ZSByZWxhdGlvbnNoaXAuIiwgMjEwKSwgeCA9IDAsIGhqdXN0ID0gMCkKYGBgCgpgYGB7ciBmaWd1cmVBLjMsIGluY2x1ZGUgPSBULCBmaWcud2lkdGggPSA5LCBmaWcuYXNwID0gMC42fQpnZ2RyYXcoZmlndXJlQS4zX2NhcCkKYGBgCgojIyBTdHVkeSA0CgpgYGB7cn0KZWZhXzNfZDRfYWRfdW5yb3QgPC0gZmFfZnVuKGQ0X2FkX3dpZGVfaSwgMykKZWZhXzNfZDRfNDZfdW5yb3QgPC0gZmFfZnVuKGQ0XzQ2X3dpZGVfaSwgMykKZWZhXzRfZDRfNDZfdW5yb3QgPC0gZmFfZnVuKGQ0XzQ2X3dpZGVfaSwgNCkKYGBgCgpgYGB7cn0KIyBhZHVsdHMKcGxvdF9lZmFfM19kNF9hZF91bnJvdCA8LSBoZWF0bWFwX2Z1bihlZmFfM19kNF9hZF91bnJvdCkgKwogIGxhYnModGl0bGUgPSAiQWR1bHRzIiwgc3VidGl0bGUgPSAiVW5yb3RhdGVkIDMtZmFjdG9yIHNvbHV0aW9uIikgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKCiMgeW91bmdlciBjaGlsZHJlbgpwbG90X2VmYV8zX2Q0XzQ2X3Vucm90IDwtIGhlYXRtYXBfZnVuKGVmYV8zX2Q0XzQ2X3Vucm90KSArCiAgbGFicyh0aXRsZSA9ICJDaGlsZHJlbiwgNC01eSIsIHN1YnRpdGxlID0gIlVucm90YXRlZCAzLWZhY3RvciBzb2x1dGlvbiIpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCgpwbG90X2VmYV80X2Q0XzQ2X3Vucm90IDwtIGhlYXRtYXBfZnVuKGVmYV80X2Q0XzQ2X3Vucm90KSArCiAgbGFicyh0aXRsZSA9ICJDaGlsZHJlbiwgNC01eSIsIHN1YnRpdGxlID0gIlVucm90YXRlZCA0LWZhY3RvciBzb2x1dGlvbiIpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCmBgYAoKYGBge3J9CmZpZ3VyZUEuNCA8LSBwbG90X2dyaWQocGxvdF9lZmFfM19kNF9hZF91bnJvdCwgcGxvdF9lZmFfM19kNF80Nl91bnJvdCwgCiAgICAgICAgICAgICAgICAgICAgICAgcGxvdF9lZmFfNF9kNF80Nl91bnJvdCwKICAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSAiQVVUTyIsIG5jb2wgPSAzLCByZWxfd2lkdGhzID0gYygxLCAxLCAxLjQpKQoKZmlndXJlQS40X2NhcCA8LSBhZGRfc3ViKGZpZ3VyZUEuNCwgc3RyX3dyYXAoIkZpZ3VyZSBBLjQ6IEZhY3RvciBsb2FkaW5ncyBmcm9tIGV4cGxvcmF0b3J5IGZhY3RvciBhbmFseXNlcyBvZiBTdHVkeSA0IChhcyByZXBvcnRlZCBpbiBDaGFwdGVyIElJSSksIGJlZm9yZSByb3RhdGlvbi4gKEEpIFJlc3VsdHMgZm9yIFVTIGFkdWx0cy4gKEIpIFJlc3VsdHMgZm9yIFVTIGNoaWxkcmVuIGFnZXMgNC01eSwgcmV0YWluaW5nIHRocmVlIGZhY3RvcnMuIChDKSBSZXN1bHRzIGZvciBVUyBjaGlsZHJlbiBhZ2VzIDQtNXksIHJldGFpbmluZyBmb3VyIGZhY3RvcnMuIEEgZmFjdG9yIGxvYWRpbmcgb2YgKzEgaW5kaWNhdGVzIGEgcGVyZmVjdGx5IHBvc2l0aXZlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIG1lbnRhbCBjYXBhY2l0eSBhbmQgdW5kZXJseWluZyBjb25zdHJ1Y3Q7IGEgbG9hZGluZyBvZiAtMSBpbmRpY2F0ZXMgYSBwZXJmZWN0bHkgbmVnYXRpdmUgcmVsYXRpb25zaGlwLiIsIDIxMCksIHggPSAwLCBoanVzdCA9IDApCmBgYAoKYGBge3IgZmlndXJlQS40LCBpbmNsdWRlID0gVCwgZmlnLndpZHRoID0gOSwgZmlnLmFzcCA9IDAuNn0KZ2dkcmF3KGZpZ3VyZUEuNF9jYXApCmBgYAoKYGBge3J9CiMgcmVzZXQgRUZBIHBhcmFtZXRlcnMgdG8gZGVmYXVsdApzb3VyY2UoIi4vc2NyaXB0cy9lZmFfcGFyYW0uUiIpCmBgYAoKCiMgT2JsaW1pbi10cmFuc2Zvcm1lZCBzb2x1dGlvbnMKClRocm91Z2hvdXQgdGhpcyBkaXNzZXJ0YXRpb24sIEkgaGF2ZSBvcHRlZCB0byBmb2N1cyBvbiB2YXJpbWF4LXJvdGF0ZWQgRUZBIHNvbHV0aW9ucywgaW4gd2hpY2ggZmFjdG9ycyBhcmUgY29uc3RyYWluZWQgdG8gYmUgb3J0aG9nb25hbCAoaS5lLiwgaW50ZXItZmFjdG9yIGNvcnJlbGF0aW9ucyBhcmUgMCkuIEluIG15IChhZG1pdHRlZGx5IGFuZWNkb3RhbCkgZXhwZXJpZW5jZSwgdGhpcyByb3RhdGlvbiBoYXMgdGVuZGVkIHRvIHByb2R1Y2Ugc29sdXRpb25zIHRoYXQgYXJlIG1vcmUgcmVwbGljYWJsZSB3aGVuIHN0dWRpZXMgYXJlIHJlcGVhdGVkIGV4YWN0bHksIG1vcmUgc2ltaWxhciBhY3Jvc3MgdmFyaWFudHMgb2YgdGhlIGVtcGlyaWNhbCBhcHByb2FjaCwgYW5kIGVhc2llciB0byBtYWtlIGZhY3RvciByZXRlbnRpb24gZGVjaXNpb25zIGFib3V0LiBPcnRob2dvbmFsIHNvbHV0aW9ucyBhbHNvIGxlbmQgdGhlbXNlbHZlcyBtb3JlIG5hdHVyYWxseSB0byAic2NvcmluZyIgaW5kaXZpZHVhbCBwYXJ0aWNpcGFudHMgb24gZWFjaCBvZiB0aGUgdW5kZXJseWluZyBjb25zdHJ1Y3RzIGJlY2F1c2UgZmFjdG9ycyBhcmUsIGJ5IGRlZmluaXRpb24sIG1heGltYWxseSBkaXN0aW5jdCBmcm9tIG9uZSBhbm90aGVyLiBTaW5jZSBjb21wYXJpbmcgRUZBIHNvbHV0aW9ucyBhY3Jvc3Mgc3R1ZGllcyBhbmQgYWdlIGdyb3VwcyAoQ2hhcHRlciBJSUkpIGFuZCB1c2luZyB0aGVzZSBzb2x1dGlvbnMgdG8gInNjb3JlIiBwYXJ0aWNpcGFudHMgb24gdGhlaXIgYXNzZXNzbWVudHMgb2YgdGhlIG1lbnRhbCBsaXZlcyBvZiBkaWZmZXJlbnQgdGFyZ2V0IGNoYXJhY3RlcnMgKENoYXB0ZXIgVikgYXJlIHR3byBvZiB0aGUgbWFpbiBnb2FscyBvZiB0aGlzIGRpc3NlcnRhdGlvbiwgdmFyaW1heCByb3RhdGlvbnMgc2VlbWVkIHRvIG1lIHRvIGJlIGFwcHJvcHJpYXRlIGZvciBteSBjdXJyZW50IHB1cnBvc2VzLiAKCkhvd2V2ZXIsICJvYmxpcXVlIiB0cmFuc2Zvcm1hdGlvbnMsIHN1Y2ggYXMgdGhlICJvYmxpbWluIiB0cmFuc2Zvcm1hdGlvbiwgYWxzbyBjb25mZXIgbWFueSBhZHZhbnRhZ2VzIGluIHVzaW5nIEVGQSB0byBpZGVudGlmeSBjb25zdHJ1Y3RzIG9mIHRoZW9yZXRpY2FsIGludGVyZXN0IChmb3IgZGlzY3Vzc2lvbiwgc2VlIFJldmVsbGUsIDIwMTgsIENoYXB0ZXIgNikuIEluIGNvbnRyYXN0IHRvIG9ydGhvZ29uYWwgcm90YXRpb25zLCBvYmxpcXVlIHRyYW5zZm9ybWF0aW9ucyBhbGxvdyBmYWN0b3JzIHRvIGNvcnJlbGF0ZSB3aXRoIGVhY2ggb3RoZXIuIEluIHJlbW92aW5nIHRoZSBvcnRoZ29uYWxpdHkgY29uc3RyYWludCwgb2JsaXF1ZSB0cmFuc2Zvcm1hdGlvbnMgdGh1cyByZXZlYWwgcmVsYXRpb25zaGlwcyBiZXR3ZWVuIHZhcmlhYmxlcyAoaW4gbXkgY2FzZSwgbWVudGFsIGNhcGFjaXRpZXMpIGFuZCBmYWN0b3JzIChjb25jZXB0dWFsIHVuaXRzKSB0aGF0IG1pZ2h0IGJlIGNvbnNpZGVyZWQgbW9yZSAibmF0dXJhbCI7IHRoZXkgbWlnaHQgYWxzbyByZXZlYWwgbmV3IGFzcGVjdHMgb2YgdGhlIHJlbGF0aW9uc2hpcHMgYW1vbmcgZmFjdG9ycyB0aGVtc2VsdmVzIChwZXJ0aW5lbnQgdG8gbXkgZ29hbHMgaW4gQ2hhcHRlciBWKS4KCkluIHRoZSBpbnRlcmVzdCBvZiBhZGRpbmcgbnVhbmNlIHRvIG15IHByaW1hcnkgZGlzY3Vzc2lvbnMgb2YgdGhlIGNvbmNlcHR1YWwgdW5pdHMgaWRlbnRpZmllZCBieSBFRkEgKENoYXRwZXIgSUlJKSBhbmQgdGhlIHJlbGF0aW9uc2hpcHMgYW1vbmcgdGhlc2UgdW5pdHMgKENoYXB0ZXIgViksIGhlcmUgSSBwcmVzZW50IG9ibGltaW4tdHJhbnNmb3JtZWQgRUZBIHNvbHV0aW9ucyBmb3IgYWxsIHN0dWRpZXMuCgpgYGB7cn0KIyByZXNldCBFRkEgcGFyYW1ldGVycyB0byBkZWZhdWx0LCB0aGVuIHNldCBjaG9zZW4gcm90YXRpb24gdG8gb2JsaW1pbgpzb3VyY2UoIi4vc2NyaXB0cy9lZmFfcGFyYW0uUiIpCmNob3Nlbl9yb3QgPC0gIm9ibGltaW4iCmBgYAoKYGBge3J9CiMgY2hlY2sgd2hldGhlciByb3RhdGlvbiBpbXBhY3RzIGZhY3RvciByZXRlbnRpb24gKGl0IGRvZXNuJ3QpCnJldGVuX3JlcG9ydF9vYmxpbWluIDwtIGxpc3QoIlN0dWR5IDFhIiA9IGQxYV9hZF93aWRlX2ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0dWR5IDFiIiA9IGQxYl9hZF93aWRlX2ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0dWR5IDFjIiA9IGQxY19hZF93aWRlX2ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0dWR5IDFkIiA9IGQxZF9hZF93aWRlX2ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0dWR5IDI6IEFkdWx0cyIgPSBkMl9hZF93aWRlX2ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0dWR5IDI6IENoaWxkcmVuICg3LTl5KSIgPSBkMl83OV93aWRlX2ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0dWR5IDM6IEFkdWx0cyIgPSBkM19hZF93aWRlX2ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0dWR5IDM6IE9sZGVyIGNoaWxkcmVuICg3LTl5KSIgPSBkM183OV93aWRlX2ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0dWR5IDM6IFlvdW5nZXIgY2hpbGRyZW4gKDQtNnkpIiA9IGQzXzQ2X3dpZGVfaSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3R1ZHkgNDogQWR1bHRzIiA9IGQ0X2FkX3dpZGVfaSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3R1ZHkgNDogQ2hpbGRyZW4gKDQtNXkpIiA9IGQ0XzQ2X3dpZGVfaSkgJT4lCiAgcmV0ZW5fcmVwb3J0X2Z1bigpCnJldGVuX3JlcG9ydF9vYmxpbWluCmBgYAoKCiMjIFN0dWR5IDEKCiMjIyBFRkEgc29sdXRpb25zCgpEaWZmZXJlbnQgZmFjdG9yIHJldGVudGlvbiBwcm90b2NvbHMgc3VnZ2VzdGVkIHJldGFpbmluZyBiZXR3ZWVuIDMtNSBmYWN0b3JzIGZvciBTdHVkaWVzIDFhLTFkLiBIZXJlLCBJIHJlcG9ydCAzLSwgNC0sIGFuZCA1LWZhY3RvciBzb2x1dGlvbnMgZm9yIGFsbCBvZiB0aGVzZSBzdHVkaWVzLiBXaGVuIHRoZXNlIGZhY3RvcnMgc2VlbSBzaW1pbGFyIHRvIHRoZSBCT0RZLCBIRUFSVCwgYW5kIE1JTkQgZmFjdG9ycyBwcmVzZW50ZWQgaW4gQ2hhcHRlciBJSUksIEkgaGF2ZSBsYWJlbGVkIHRoZW0gYWNjb3JkaW5nbHkuCgpgYGB7cn0KZWZhXzNfZDFhX2FkX29ibGltaW4gPC0gZmFfZnVuKGQxYV9hZF93aWRlX2ksIDMpCmVmYV8zX2QxYl9hZF9vYmxpbWluIDwtIGZhX2Z1bihkMWJfYWRfd2lkZV9pLCAzKQplZmFfM19kMWNfYWRfb2JsaW1pbiA8LSBmYV9mdW4oZDFjX2FkX3dpZGVfaSwgMykKZWZhXzNfZDFkX2FkX29ibGltaW4gPC0gZmFfZnVuKGQxZF9hZF93aWRlX2ksIDMpCgplZmFfNF9kMWFfYWRfb2JsaW1pbiA8LSBmYV9mdW4oZDFhX2FkX3dpZGVfaSwgNCkKZWZhXzRfZDFiX2FkX29ibGltaW4gPC0gZmFfZnVuKGQxYl9hZF93aWRlX2ksIDQpCmVmYV80X2QxY19hZF9vYmxpbWluIDwtIGZhX2Z1bihkMWNfYWRfd2lkZV9pLCA0KQplZmFfNF9kMWRfYWRfb2JsaW1pbiA8LSBmYV9mdW4oZDFkX2FkX3dpZGVfaSwgNCkKCmVmYV81X2QxYV9hZF9vYmxpbWluIDwtIGZhX2Z1bihkMWFfYWRfd2lkZV9pLCA1KQplZmFfNV9kMWJfYWRfb2JsaW1pbiA8LSBmYV9mdW4oZDFiX2FkX3dpZGVfaSwgNSkKZWZhXzVfZDFjX2FkX29ibGltaW4gPC0gZmFfZnVuKGQxY19hZF93aWRlX2ksIDUpCmVmYV81X2QxZF9hZF9vYmxpbWluIDwtIGZhX2Z1bihkMWRfYWRfd2lkZV9pLCA1KQpgYGAKCmBgYHtyfQpmYWN0b3JfbmFtZXNfZWZhXzNfZDFhX2FkX29ibGltaW4gPC0gYygiSEVBUlQiLCAiQk9EWSIsICJNSU5EIikKZmFjdG9yX25hbWVzX2VmYV8zX2QxYl9hZF9vYmxpbWluIDwtIGMoIkJPRFkiLCAiSEVBUlQiLCAiTUlORCIpCmZhY3Rvcl9uYW1lc19lZmFfM19kMWNfYWRfb2JsaW1pbiA8LSBjKCJIRUFSVCIsICJCT0RZIiwgIk1JTkQiKQpmYWN0b3JfbmFtZXNfZWZhXzNfZDFkX2FkX29ibGltaW4gPC0gYygiQk9EWSIsICJIRUFSVCIsICJNSU5EIikKCmZhY3Rvcl9uYW1lc19lZmFfNF9kMWFfYWRfb2JsaW1pbiA8LSBjKCJIRUFSVCIsICJCT0RZIiwgIk1JTkQgKHBlcmNlcHRpb24pIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNSU5EIChhZ2VuY3kpIikKZmFjdG9yX25hbWVzX2VmYV80X2QxYl9hZF9vYmxpbWluIDwtIGMoIkhFQVJUIChzb2NpYWwpIiwgIk1JTkQiLCAiQk9EWSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSEVBUlQgKGJhc2ljKSIpCmZhY3Rvcl9uYW1lc19lZmFfNF9kMWNfYWRfb2JsaW1pbiA8LSBjKCJIRUFSVCIsICJNSU5EIChhZ2VuY3kpIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJCT0RZIHZzLiBNSU5EIiwgIk1JTkQgKHBlcmNlcHRpb24pIikKZmFjdG9yX25hbWVzX2VmYV80X2QxZF9hZF9vYmxpbWluIDwtIGMoIkhFQVJUIiwgIk1JTkQiLCAiQk9EWSIsICJGYWN0b3IgNCIpCgpmYWN0b3JfbmFtZXNfZWZhXzVfZDFhX2FkX29ibGltaW4gPC0gYygiSEVBUlQgKHNvY2lhbCkiLCAiQk9EWSB2cy4gTUlORCIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSEVBUlQgKGJhc2ljKSIsICJNSU5EIChwZXJjZXB0aW9uKSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNSU5EIChhZ2VuY3kpIikKZmFjdG9yX25hbWVzX2VmYV81X2QxYl9hZF9vYmxpbWluIDwtIGMoIkJPRFkgdnMuIE1JTkQiLCAiSEVBUlQgKHNvY2lhbCkiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1JTkQgKHBlcmNlcHRpb24pIiwgIkhFQVJUIChiYXNpYykiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTUlORCAoY29nbml0aW9uKSIpCmZhY3Rvcl9uYW1lc19lZmFfNV9kMWNfYWRfb2JsaW1pbiA8LSBjKCJIRUFSVCAoc29jaWFsKSIsICJNSU5EIChhZ2VuY3kpIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1JTkQgKHBlcmNlcHRpb24pIiwgIk1JTkQgdnMuIEJPRFkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmFjdG9yIDUiKQpmYWN0b3JfbmFtZXNfZWZhXzVfZDFkX2FkX29ibGltaW4gPC0gYygiSEVBUlQgKGJhc2ljKSIsICJIRUFSVCAoc29jaWFsKSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNSU5EIChwZXJjZXB0aW9uKSIsICJNSU5EIChhZ2VuY3kpIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkJPRFkgdnMuIE1JTkQiKQpgYGAKCmBgYHtyfQojIHN0dWR5IDFhCnBsb3RfZWZhXzNfZDFhX2FkX29ibGltaW4gPC0gaGVhdG1hcF9mdW4oCiAgZWZhXzNfZDFhX2FkX29ibGltaW4sIGZhY3Rvcl9uYW1lcyA9IGZhY3Rvcl9uYW1lc19lZmFfM19kMWFfYWRfb2JsaW1pbikgKwogIGxhYnModGl0bGUgPSAiU3R1ZHkgMWEiLCBzdWJ0aXRsZSA9ICJPYmxpbWluLXRyYW5zZm9ybWVkIDMtZmFjdG9yIHNvbHV0aW9uIikgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKCnBsb3RfZWZhXzRfZDFhX2FkX29ibGltaW4gPC0gaGVhdG1hcF9mdW4oCiAgZWZhXzRfZDFhX2FkX29ibGltaW4sIGZhY3Rvcl9uYW1lcyA9IGZhY3Rvcl9uYW1lc19lZmFfNF9kMWFfYWRfb2JsaW1pbikgKwogIGxhYnModGl0bGUgPSAiU3R1ZHkgMWEiLCBzdWJ0aXRsZSA9ICJPYmxpbWluLXRyYW5zZm9ybWVkIDQtZmFjdG9yIHNvbHV0aW9uIikgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKCnBsb3RfZWZhXzVfZDFhX2FkX29ibGltaW4gPC0gaGVhdG1hcF9mdW4oCiAgZWZhXzVfZDFhX2FkX29ibGltaW4sIGZhY3Rvcl9uYW1lcyA9IGZhY3Rvcl9uYW1lc19lZmFfNV9kMWFfYWRfb2JsaW1pbikgKwogIGxhYnModGl0bGUgPSAiU3R1ZHkgMWEiLCBzdWJ0aXRsZSA9ICJPYmxpbWluLXRyYW5zZm9ybWVkIDUtZmFjdG9yIHNvbHV0aW9uIikgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKCiMgc3R1ZHkgMWIKcGxvdF9lZmFfM19kMWJfYWRfb2JsaW1pbiA8LSBoZWF0bWFwX2Z1bigKICBlZmFfM19kMWJfYWRfb2JsaW1pbiwgZmFjdG9yX25hbWVzID0gZmFjdG9yX25hbWVzX2VmYV8zX2QxYl9hZF9vYmxpbWluKSArCiAgbGFicyh0aXRsZSA9ICJTdHVkeSAxYiIsIHN1YnRpdGxlID0gIk9ibGltaW4tdHJhbnNmb3JtZWQgMy1mYWN0b3Igc29sdXRpb24iKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQoKcGxvdF9lZmFfNF9kMWJfYWRfb2JsaW1pbiA8LSBoZWF0bWFwX2Z1bigKICBlZmFfNF9kMWJfYWRfb2JsaW1pbiwgZmFjdG9yX25hbWVzID0gZmFjdG9yX25hbWVzX2VmYV80X2QxYl9hZF9vYmxpbWluKSArCiAgbGFicyh0aXRsZSA9ICJTdHVkeSAxYiIsIHN1YnRpdGxlID0gIk9ibGltaW4tdHJhbnNmb3JtZWQgNC1mYWN0b3Igc29sdXRpb24iKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQoKcGxvdF9lZmFfNV9kMWJfYWRfb2JsaW1pbiA8LSBoZWF0bWFwX2Z1bigKICBlZmFfNV9kMWJfYWRfb2JsaW1pbiwgZmFjdG9yX25hbWVzID0gZmFjdG9yX25hbWVzX2VmYV81X2QxYl9hZF9vYmxpbWluKSArCiAgbGFicyh0aXRsZSA9ICJTdHVkeSAxYiIsIHN1YnRpdGxlID0gIk9ibGltaW4tdHJhbnNmb3JtZWQgNS1mYWN0b3Igc29sdXRpb24iKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQoKIyBzdHVkeSAxYwpwbG90X2VmYV8zX2QxY19hZF9vYmxpbWluIDwtIGhlYXRtYXBfZnVuKAogIGVmYV8zX2QxY19hZF9vYmxpbWluLCBmYWN0b3JfbmFtZXMgPSBmYWN0b3JfbmFtZXNfZWZhXzNfZDFjX2FkX29ibGltaW4pICsKICBsYWJzKHRpdGxlID0gIlN0dWR5IDFjIiwgc3VidGl0bGUgPSAiT2JsaW1pbi10cmFuc2Zvcm1lZCAzLWZhY3RvciBzb2x1dGlvbiIpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCgpwbG90X2VmYV80X2QxY19hZF9vYmxpbWluIDwtIGhlYXRtYXBfZnVuKAogIGVmYV80X2QxY19hZF9vYmxpbWluLCBmYWN0b3JfbmFtZXMgPSBmYWN0b3JfbmFtZXNfZWZhXzRfZDFjX2FkX29ibGltaW4pICsKICBsYWJzKHRpdGxlID0gIlN0dWR5IDFjIiwgc3VidGl0bGUgPSAiT2JsaW1pbi10cmFuc2Zvcm1lZCA0LWZhY3RvciBzb2x1dGlvbiIpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCgpwbG90X2VmYV81X2QxY19hZF9vYmxpbWluIDwtIGhlYXRtYXBfZnVuKAogIGVmYV81X2QxY19hZF9vYmxpbWluLCBmYWN0b3JfbmFtZXMgPSBmYWN0b3JfbmFtZXNfZWZhXzVfZDFjX2FkX29ibGltaW4pICsKICBsYWJzKHRpdGxlID0gIlN0dWR5IDFjIiwgc3VidGl0bGUgPSAiT2JsaW1pbi10cmFuc2Zvcm1lZCA1LWZhY3RvciBzb2x1dGlvbiIpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCgojIHN0dWR5IDFkCnBsb3RfZWZhXzNfZDFkX2FkX29ibGltaW4gPC0gaGVhdG1hcF9mdW4oCiAgZWZhXzNfZDFkX2FkX29ibGltaW4sIGZhY3Rvcl9uYW1lcyA9IGZhY3Rvcl9uYW1lc19lZmFfM19kMWRfYWRfb2JsaW1pbikgKwogIGxhYnModGl0bGUgPSAiU3R1ZHkgMWQiLCBzdWJ0aXRsZSA9ICJPYmxpbWluLXRyYW5zZm9ybWVkIDMtZmFjdG9yIHNvbHV0aW9uIikgIyArCiAgIyB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCgpwbG90X2VmYV80X2QxZF9hZF9vYmxpbWluIDwtIGhlYXRtYXBfZnVuKAogIGVmYV80X2QxZF9hZF9vYmxpbWluLCBmYWN0b3JfbmFtZXMgPSBmYWN0b3JfbmFtZXNfZWZhXzRfZDFkX2FkX29ibGltaW4pICsKICBsYWJzKHRpdGxlID0gIlN0dWR5IDFkIiwgc3VidGl0bGUgPSAiT2JsaW1pbi10cmFuc2Zvcm1lZCA0LWZhY3RvciBzb2x1dGlvbiIpICMgKwogICMgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQoKcGxvdF9lZmFfNV9kMWRfYWRfb2JsaW1pbiA8LSBoZWF0bWFwX2Z1bigKICBlZmFfNV9kMWRfYWRfb2JsaW1pbiwgZmFjdG9yX25hbWVzID0gZmFjdG9yX25hbWVzX2VmYV81X2QxZF9hZF9vYmxpbWluKSArCiAgbGFicyh0aXRsZSA9ICJTdHVkeSAxZCIsIHN1YnRpdGxlID0gIk9ibGltaW4tdHJhbnNmb3JtZWQgNS1mYWN0b3Igc29sdXRpb24iKSAjICsKICAjIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKYGBgCgpgYGB7cn0KZmlndXJlQS41IDwtIHBsb3RfZ3JpZChwbG90X2VmYV8zX2QxYV9hZF9vYmxpbWluLCBwbG90X2VmYV8zX2QxYl9hZF9vYmxpbWluLCAKICAgICAgICAgICAgICAgICAgICAgICBwbG90X2VmYV8zX2QxY19hZF9vYmxpbWluLCBwbG90X2VmYV8zX2QxZF9hZF9vYmxpbWluLAogICAgICAgICAgICAgICAgICAgICAgIHBsb3RfZWZhXzRfZDFhX2FkX29ibGltaW4sIHBsb3RfZWZhXzRfZDFiX2FkX29ibGltaW4sIAogICAgICAgICAgICAgICAgICAgICAgIHBsb3RfZWZhXzRfZDFjX2FkX29ibGltaW4sIHBsb3RfZWZhXzRfZDFkX2FkX29ibGltaW4sCiAgICAgICAgICAgICAgICAgICAgICAgcGxvdF9lZmFfNV9kMWFfYWRfb2JsaW1pbiwgcGxvdF9lZmFfNV9kMWJfYWRfb2JsaW1pbiwgCiAgICAgICAgICAgICAgICAgICAgICAgcGxvdF9lZmFfNV9kMWNfYWRfb2JsaW1pbiwgcGxvdF9lZmFfNV9kMWRfYWRfb2JsaW1pbiwKICAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSAiQVVUTyIsIG5jb2wgPSA0LCByZWxfd2lkdGhzID0gYygxLCAxLCAxLCAxLjIpKQoKZmlndXJlQS41X2NhcCA8LSBhZGRfc3ViKGZpZ3VyZUEuNSwgc3RyX3dyYXAoIkZpZ3VyZSBBLjU6IEZhY3RvciBsb2FkaW5ncyBmcm9tIGV4cGxvcmF0b3J5IGZhY3RvciBhbmFseXNlcyBvZiBTdHVkeSAxIGFmdGVyIG9ibGltaW4gdHJhbnNmb3JtYXRpb24uIEFsbCByZXN1bHRzIGFyZSBmcm9tIFVTIGFkdWx0IHNhbXBsZXM7IHNlZSBDaGFwdGVyIElJIGZvciBtZXRob2RzLiAoQSkgU3R1ZHkgMWEuIChCKSBTdHVkeSAxYi4gKEMpIFN0dWR5IDFjLiAoRCkgU3R1ZHkgMWQuIEluIHRoaXMgYW5kIGFsbCBmaWd1cmVzIHBvcnRyYXlpbmcgZmFjdG9yIGxvYWRpbmdzLCBmYWN0b3JzIGhhdmUgYmVlbiBwbG90dGVkIGluIHRoZSBzYW1lIG9yZGVyIChCT0RZLCBIRUFSVCwgTUlORCksIHdoZW4gYXBwbGljYWJsZSwgdG8gZmFjaWxpdGF0ZSBjb21wYXJpc29uIGFjcm9zcyBzdHVkaWVzLiBBIGZhY3RvciBsb2FkaW5nIG9mICsxIGluZGljYXRlcyBhIHBlcmZlY3RseSBwb3NpdGl2ZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBtZW50YWwgY2FwYWNpdHkgYW5kIHVuZGVybHlpbmcgY29uc3RydWN0OyBhIGxvYWRpbmcgb2YgLTEgaW5kaWNhdGVzIGEgcGVyZmVjdGx5IG5lZ2F0aXZlIHJlbGF0aW9uc2hpcC4iLCAzNjApLCB4ID0gMCwgaGp1c3QgPSAwKQpgYGAKCmBgYHtyIGZpZ3VyZUEuNSwgaW5jbHVkZSA9IFQsIGZpZy53aWR0aCA9IDE2LCBmaWcuYXNwID0gMS40fQpnZ2RyYXcoZmlndXJlQS41X2NhcCkKYGBgCgojIyMgSW50ZXItZmFjdG9yIGNvcnJlbGF0aW9ucwoKSGVyZSBJIHByZXNlbnQgaW50ZXItZmFjdG9yIGNvcnJlbGF0aW9ucyBmb3IgYWxsIG9mIHRoZSBhYm92ZSBFRkEgc29sdXRpb25zIGZvciBTdHVkaWVzIDFhLTFkLiAKCmBgYHtyfQojIHN0dWR5IDFhCklGY29yX2VmYV8zX2QxYV9hZF9vYmxpbWluIDwtIElGY29yX3Bsb3RfZnVuKAogIGVmYV8zX2QxYV9hZF9vYmxpbWluLCBmYWN0b3JfbmFtZXMgPSBmYWN0b3JfbmFtZXNfZWZhXzNfZDFhX2FkX29ibGltaW4pICsKICBsYWJzKHRpdGxlID0gIlN0dWR5IDFhIiwgc3VidGl0bGUgPSAiT2JsaW1pbi10cmFuc2Zvcm1lZCAzLWZhY3RvciBzb2x1dGlvbiIpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCgpJRmNvcl9lZmFfNF9kMWFfYWRfb2JsaW1pbiA8LSBJRmNvcl9wbG90X2Z1bigKICBlZmFfNF9kMWFfYWRfb2JsaW1pbiwgZmFjdG9yX25hbWVzID0gZmFjdG9yX25hbWVzX2VmYV80X2QxYV9hZF9vYmxpbWluKSArCiAgbGFicyh0aXRsZSA9ICJTdHVkeSAxYSIsIHN1YnRpdGxlID0gIk9ibGltaW4tdHJhbnNmb3JtZWQgNC1mYWN0b3Igc29sdXRpb24iKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQoKSUZjb3JfZWZhXzVfZDFhX2FkX29ibGltaW4gPC0gSUZjb3JfcGxvdF9mdW4oCiAgZWZhXzVfZDFhX2FkX29ibGltaW4sIGZhY3Rvcl9uYW1lcyA9IGZhY3Rvcl9uYW1lc19lZmFfNV9kMWFfYWRfb2JsaW1pbikgKwogIGxhYnModGl0bGUgPSAiU3R1ZHkgMWEiLCBzdWJ0aXRsZSA9ICJPYmxpbWluLXRyYW5zZm9ybWVkIDUtZmFjdG9yIHNvbHV0aW9uIikgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKCiMgc3R1ZHkgMWIKSUZjb3JfZWZhXzNfZDFiX2FkX29ibGltaW4gPC0gSUZjb3JfcGxvdF9mdW4oCiAgZWZhXzNfZDFiX2FkX29ibGltaW4sIGZhY3Rvcl9uYW1lcyA9IGZhY3Rvcl9uYW1lc19lZmFfM19kMWJfYWRfb2JsaW1pbikgKwogIGxhYnModGl0bGUgPSAiU3R1ZHkgMWIiLCBzdWJ0aXRsZSA9ICJPYmxpbWluLXRyYW5zZm9ybWVkIDMtZmFjdG9yIHNvbHV0aW9uIikgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKCklGY29yX2VmYV80X2QxYl9hZF9vYmxpbWluIDwtIElGY29yX3Bsb3RfZnVuKAogIGVmYV80X2QxYl9hZF9vYmxpbWluLCBmYWN0b3JfbmFtZXMgPSBmYWN0b3JfbmFtZXNfZWZhXzRfZDFiX2FkX29ibGltaW4pICsKICBsYWJzKHRpdGxlID0gIlN0dWR5IDFiIiwgc3VidGl0bGUgPSAiT2JsaW1pbi10cmFuc2Zvcm1lZCA0LWZhY3RvciBzb2x1dGlvbiIpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCgpJRmNvcl9lZmFfNV9kMWJfYWRfb2JsaW1pbiA8LSBJRmNvcl9wbG90X2Z1bigKICBlZmFfNV9kMWJfYWRfb2JsaW1pbiwgZmFjdG9yX25hbWVzID0gZmFjdG9yX25hbWVzX2VmYV81X2QxYl9hZF9vYmxpbWluKSArCiAgbGFicyh0aXRsZSA9ICJTdHVkeSAxYiIsIHN1YnRpdGxlID0gIk9ibGltaW4tdHJhbnNmb3JtZWQgNS1mYWN0b3Igc29sdXRpb24iKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQoKIyBzdHVkeSAxYwpJRmNvcl9lZmFfM19kMWNfYWRfb2JsaW1pbiA8LSBJRmNvcl9wbG90X2Z1bigKICBlZmFfM19kMWNfYWRfb2JsaW1pbiwgZmFjdG9yX25hbWVzID0gZmFjdG9yX25hbWVzX2VmYV8zX2QxY19hZF9vYmxpbWluKSArCiAgbGFicyh0aXRsZSA9ICJTdHVkeSAxYyIsIHN1YnRpdGxlID0gIk9ibGltaW4tdHJhbnNmb3JtZWQgMy1mYWN0b3Igc29sdXRpb24iKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQoKSUZjb3JfZWZhXzRfZDFjX2FkX29ibGltaW4gPC0gSUZjb3JfcGxvdF9mdW4oCiAgZWZhXzRfZDFjX2FkX29ibGltaW4sIGZhY3Rvcl9uYW1lcyA9IGZhY3Rvcl9uYW1lc19lZmFfNF9kMWNfYWRfb2JsaW1pbikgKwogIGxhYnModGl0bGUgPSAiU3R1ZHkgMWMiLCBzdWJ0aXRsZSA9ICJPYmxpbWluLXRyYW5zZm9ybWVkIDQtZmFjdG9yIHNvbHV0aW9uIikgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKCklGY29yX2VmYV81X2QxY19hZF9vYmxpbWluIDwtIElGY29yX3Bsb3RfZnVuKAogIGVmYV81X2QxY19hZF9vYmxpbWluLCBmYWN0b3JfbmFtZXMgPSBmYWN0b3JfbmFtZXNfZWZhXzVfZDFjX2FkX29ibGltaW4pICsKICBsYWJzKHRpdGxlID0gIlN0dWR5IDFjIiwgc3VidGl0bGUgPSAiT2JsaW1pbi10cmFuc2Zvcm1lZCA1LWZhY3RvciBzb2x1dGlvbiIpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCgojIHN0dWR5IDFkCklGY29yX2VmYV8zX2QxZF9hZF9vYmxpbWluIDwtIElGY29yX3Bsb3RfZnVuKAogIGVmYV8zX2QxZF9hZF9vYmxpbWluLCBmYWN0b3JfbmFtZXMgPSBmYWN0b3JfbmFtZXNfZWZhXzNfZDFkX2FkX29ibGltaW4pICsKICBsYWJzKHRpdGxlID0gIlN0dWR5IDFkIiwgc3VidGl0bGUgPSAiT2JsaW1pbi10cmFuc2Zvcm1lZCAzLWZhY3RvciBzb2x1dGlvbiIpICMgKwogICMgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQoKSUZjb3JfZWZhXzRfZDFkX2FkX29ibGltaW4gPC0gSUZjb3JfcGxvdF9mdW4oCiAgZWZhXzRfZDFkX2FkX29ibGltaW4sIGZhY3Rvcl9uYW1lcyA9IGZhY3Rvcl9uYW1lc19lZmFfNF9kMWRfYWRfb2JsaW1pbikgKwogIGxhYnModGl0bGUgPSAiU3R1ZHkgMWQiLCBzdWJ0aXRsZSA9ICJPYmxpbWluLXRyYW5zZm9ybWVkIDQtZmFjdG9yIHNvbHV0aW9uIikgIyArCiAgIyB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCgpJRmNvcl9lZmFfNV9kMWRfYWRfb2JsaW1pbiA8LSBJRmNvcl9wbG90X2Z1bigKICBlZmFfNV9kMWRfYWRfb2JsaW1pbiwgZmFjdG9yX25hbWVzID0gZmFjdG9yX25hbWVzX2VmYV81X2QxZF9hZF9vYmxpbWluKSArCiAgbGFicyh0aXRsZSA9ICJTdHVkeSAxZCIsIHN1YnRpdGxlID0gIk9ibGltaW4tdHJhbnNmb3JtZWQgNS1mYWN0b3Igc29sdXRpb24iKSAjICsKICAjIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKYGBgCgpgYGB7cn0KZmlndXJlQS42IDwtIHBsb3RfZ3JpZChJRmNvcl9lZmFfM19kMWFfYWRfb2JsaW1pbiwgSUZjb3JfZWZhXzNfZDFiX2FkX29ibGltaW4sCiAgICAgICAgICAgICAgICAgICAgICAgIElGY29yX2VmYV8zX2QxY19hZF9vYmxpbWluLCBJRmNvcl9lZmFfM19kMWRfYWRfb2JsaW1pbiwKICAgICAgICAgICAgICAgICAgICAgICAgSUZjb3JfZWZhXzRfZDFhX2FkX29ibGltaW4sIElGY29yX2VmYV80X2QxYl9hZF9vYmxpbWluLAogICAgICAgICAgICAgICAgICAgICAgICBJRmNvcl9lZmFfNF9kMWNfYWRfb2JsaW1pbiwgSUZjb3JfZWZhXzRfZDFkX2FkX29ibGltaW4sCiAgICAgICAgICAgICAgICAgICAgICAgIElGY29yX2VmYV81X2QxYV9hZF9vYmxpbWluLCBJRmNvcl9lZmFfNV9kMWJfYWRfb2JsaW1pbiwKICAgICAgICAgICAgICAgICAgICAgICAgSUZjb3JfZWZhXzVfZDFjX2FkX29ibGltaW4sIElGY29yX2VmYV81X2QxZF9hZF9vYmxpbWluLAogICAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSAiQVVUTyIsIG5jb2wgPSA0LCByZWxfd2lkdGhzID0gYygxLCAxLCAxLCAxLjIpKQoKZmlndXJlQS42X2NhcCA8LSBhZGRfc3ViKGZpZ3VyZUEuNiwgc3RyX3dyYXAoIkZpZ3VyZSBBLjY6IEludGVyLWZhY3RvciBjb3JyZWxhdGlvbnMgZnJvbSBleHBsb3JhdG9yeSBmYWN0b3IgYW5hbHlzZXMgb2YgU3R1ZHkgMSBhZnRlciBvYmxpbWluIHRyYW5zZm9ybWF0aW9uLiBBbGwgcmVzdWx0cyBhcmUgZnJvbSBVUyBhZHVsdCBzYW1wbGVzOyBzZWUgQ2hhcHRlciBJSSBmb3IgbWV0aG9kcy4gKEEpIFN0dWR5IDFhLiAoQikgU3R1ZHkgMWIuIChDKSBTdHVkeSAxYy4gKEQpIFN0dWR5IDFkLiBGYWN0b3JzIGhhdmUgYmVlbiBsYWJlbGVkIHdpdGggdGhlIGxhYmVscyAnQk9EWSwnICdIRUFSVCwnIGFuZCAnTUlORCwnIHdoZW4gYXBwbGljYWJsZSwgdG8gZmFjaWxpdGF0ZSBjb21wYXJpc29uIGFjcm9zcyBzdHVkaWVzLiIsIDE5MCksIHggPSAwLCBoanVzdCA9IDApCmBgYAoKYGBge3IgZmlndXJlQS42LCBpbmNsdWRlID0gVCwgZmlnLndpZHRoID0gOCwgZmlnLmFzcCA9IDAuOH0KZ2dkcmF3KGZpZ3VyZUEuNl9jYXApCmBgYAoKIyMgU3R1ZHkgMgoKIyMjIEVGQSBzb2x1dGlvbnMKCkRpZmZlcmVudCBmYWN0b3IgcmV0ZW50aW9uIHByb3RvY29scyBzdWdnZXN0ZWQgcmV0YWluaW5nIGVpdGhlciAzIG9yIDQgZmFjdG9ycyBmb3IgYWR1bHRzIGluIFN0dWR5IDI7IGFsbCBwcm90b2NvbHMgc3VnZ2VzdGVkIHJldGFpbmluZyAzIGZhY3RvcnMgZm9yIGNoaWxkcmVuIChhZ2VzIDctOXkpLiBIZXJlLCBJIHJlcG9ydCAzLSwgYW5kIDQtZmFjdG9yIHNvbHV0aW9ucyBmb3IgYWR1bHRzIGFuZCB0aGUgMy1mYWN0b3Igc29sdXRpb24gZm9yIGNoaWxkcmVuLiBXaGVuIHRoZXNlIGZhY3RvcnMgc2VlbSBzaW1pbGFyIHRvIHRoZSBCT0RZLCBIRUFSVCwgYW5kIE1JTkQgZmFjdG9ycyBwcmVzZW50ZWQgaW4gQ2hhcHRlciBJSUksIEkgaGF2ZSBsYWJlbGVkIHRoZW0gYWNjb3JkaW5nbHkuCgpgYGB7cn0KZWZhXzNfZDJfYWRfb2JsaW1pbiA8LSBmYV9mdW4oZDJfYWRfd2lkZV9pLCAzKQplZmFfNF9kMl9hZF9vYmxpbWluIDwtIGZhX2Z1bihkMl9hZF93aWRlX2ksIDQpCmVmYV8zX2QyXzc5X29ibGltaW4gPC0gZmFfZnVuKGQyXzc5X3dpZGVfaSwgMykKYGBgCgpgYGB7cn0KZmFjdG9yX25hbWVzX2VmYV8zX2QyX2FkX29ibGltaW4gPC0gYygiSEVBUlQiLCAiQk9EWSIsICJNSU5EIikKZmFjdG9yX25hbWVzX2VmYV80X2QyX2FkX29ibGltaW4gPC0gYygiSEVBUlQiLCAiQk9EWSB2cy4gTUlORCIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNSU5EIChhZ2VuY3kpIiwgIk1JTkQgKHBlcmNlcHRpb24pIikKZmFjdG9yX25hbWVzX2VmYV8zX2QyXzc5X29ibGltaW4gPC0gYygiSEVBUlQiLCAiQk9EWSB2cy4gTUlORCIsICJNSU5EIikKYGBgCgpgYGB7cn0KcGxvdF9lZmFfM19kMl9hZF9vYmxpbWluIDwtIGhlYXRtYXBfZnVuKAogIGVmYV8zX2QyX2FkX29ibGltaW4sIGZhY3Rvcl9uYW1lcyA9IGZhY3Rvcl9uYW1lc19lZmFfM19kMl9hZF9vYmxpbWluKSArCiAgbGFicyh0aXRsZSA9ICJTdHVkeSAyLCBBZHVsdHMiLCAKICAgICAgIHN1YnRpdGxlID0gIk9ibGltaW4tdHJhbnNmb3JtZWQgMy1mYWN0b3Igc29sdXRpb24iKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQoKcGxvdF9lZmFfNF9kMl9hZF9vYmxpbWluIDwtIGhlYXRtYXBfZnVuKAogIGVmYV80X2QyX2FkX29ibGltaW4sIGZhY3Rvcl9uYW1lcyA9IGZhY3Rvcl9uYW1lc19lZmFfNF9kMl9hZF9vYmxpbWluKSArCiAgbGFicyh0aXRsZSA9ICJTdHVkeSAyLCBBZHVsdHMiLCAKICAgICAgIHN1YnRpdGxlID0gIk9ibGltaW4tdHJhbnNmb3JtZWQgNC1mYWN0b3Igc29sdXRpb24iKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQoKcGxvdF9lZmFfM19kMl83OV9vYmxpbWluIDwtIGhlYXRtYXBfZnVuKAogIGVmYV8zX2QyXzc5X29ibGltaW4sIGZhY3Rvcl9uYW1lcyA9IGZhY3Rvcl9uYW1lc19lZmFfM19kMl83OV9vYmxpbWluKSArCiAgbGFicyh0aXRsZSA9ICJTdHVkeSAyLCBDaGlsZHJlbiAoNy05eSkiLCAKICAgICAgIHN1YnRpdGxlID0gIk9ibGltaW4tdHJhbnNmb3JtZWQgMy1mYWN0b3Igc29sdXRpb24iKSAjICsKICAjIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKYGBgCgpgYGB7cn0KZmlndXJlQS43IDwtIHBsb3RfZ3JpZChwbG90X2VmYV8zX2QyX2FkX29ibGltaW4sIHBsb3RfZWZhXzRfZDJfYWRfb2JsaW1pbiwKICAgICAgICAgICAgICAgICAgICAgICBwbG90X2VmYV8zX2QyXzc5X29ibGltaW4sCiAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxzID0gIkFVVE8iLCBuY29sID0gMywgcmVsX3dpZHRocyA9IGMoMSwgMS4yLCAxLjIpKQoKZmlndXJlQS43X2NhcCA8LSBhZGRfc3ViKGZpZ3VyZUEuNywgc3RyX3dyYXAoIkZpZ3VyZSBBLjc6IEZhY3RvciBsb2FkaW5ncyBmcm9tIGV4cGxvcmF0b3J5IGZhY3RvciBhbmFseXNlcyBvZiBTdHVkeSAyIGFmdGVyIG9ibGltaW4gdHJhbnNmb3JtYXRpb24uIFNlZSBDaGFwdGVyIElJIGZvciBtZXRob2RzLiAoQSkgVVMgYWR1bHRzLCAzLWZhY3RvciBzb2x1dGlvbi4gKEIpIFVTIGFkdWx0cywgNC1mYWN0b3Igc29sdXRpb24uIChDKSBVUyBjaGlsZHJlbiBhZ2VzIDctOXkuIEluIHRoaXMgYW5kIGFsbCBmaWd1cmVzIHBvcnRyYXlpbmcgZmFjdG9yIGxvYWRpbmdzLCBmYWN0b3JzIGhhdmUgYmVlbiBwbG90dGVkIGluIHRoZSBzYW1lIG9yZGVyIChCT0RZLCBIRUFSVCwgTUlORCksIHdoZW4gYXBwbGljYWJsZSwgdG8gZmFjaWxpdGF0ZSBjb21wYXJpc29uIGFjcm9zcyBzdHVkaWVzLiBBIGZhY3RvciBsb2FkaW5nIG9mICsxIGluZGljYXRlcyBhIHBlcmZlY3RseSBwb3NpdGl2ZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBtZW50YWwgY2FwYWNpdHkgYW5kIHVuZGVybHlpbmcgY29uc3RydWN0OyBhIGxvYWRpbmcgb2YgLTEgaW5kaWNhdGVzIGEgcGVyZmVjdGx5IG5lZ2F0aXZlIHJlbGF0aW9uc2hpcC4iLCAyMTApLCB4ID0gMCwgaGp1c3QgPSAwKQpgYGAKCmBgYHtyIGZpZ3VyZUEuNywgaW5jbHVkZSA9IFQsIGZpZy53aWR0aCA9IDksIGZpZy5hc3AgPSAwLjZ9CmdnZHJhdyhmaWd1cmVBLjdfY2FwKQpgYGAKCiMjIyBJbnRlci1mYWN0b3IgY29ycmVsYXRpb25zCgpIZXJlIEkgcHJlc2VudCBpbnRlci1mYWN0b3IgY29ycmVsYXRpb25zIGZvciBhbGwgb2YgdGhlIGFib3ZlIEVGQSBzb2x1dGlvbnMgZm9yIFN0dWR5IDIuIAoKYGBge3J9CklGY29yX2VmYV8zX2QyX2FkX29ibGltaW4gPC0gSUZjb3JfcGxvdF9mdW4oCiAgZWZhXzNfZDJfYWRfb2JsaW1pbiwgZmFjdG9yX25hbWVzID0gZmFjdG9yX25hbWVzX2VmYV8zX2QyX2FkX29ibGltaW4pICsKICBsYWJzKHRpdGxlID0gIlN0dWR5IDIsIEFkdWx0cyIsIAogICAgICAgc3VidGl0bGUgPSAiT2JsaW1pbi10cmFuc2Zvcm1lZCAzLWZhY3RvciBzb2x1dGlvbiIpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCgpJRmNvcl9lZmFfNF9kMl9hZF9vYmxpbWluIDwtIElGY29yX3Bsb3RfZnVuKAogIGVmYV80X2QyX2FkX29ibGltaW4sIGZhY3Rvcl9uYW1lcyA9IGZhY3Rvcl9uYW1lc19lZmFfNF9kMl9hZF9vYmxpbWluKSArCiAgbGFicyh0aXRsZSA9ICJTdHVkeSAyLCBBZHVsdHMiLCAKICAgICAgIHN1YnRpdGxlID0gIk9ibGltaW4tdHJhbnNmb3JtZWQgNC1mYWN0b3Igc29sdXRpb24iKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQoKSUZjb3JfZWZhXzNfZDJfNzlfb2JsaW1pbiA8LSBJRmNvcl9wbG90X2Z1bigKICBlZmFfM19kMl83OV9vYmxpbWluLCBmYWN0b3JfbmFtZXMgPSBmYWN0b3JfbmFtZXNfZWZhXzNfZDJfNzlfb2JsaW1pbikgKwogIGxhYnModGl0bGUgPSAiU3R1ZHkgMiwgQ2hpbGRyZW4gKDctOXkpIiwgCiAgICAgICBzdWJ0aXRsZSA9ICJPYmxpbWluLXRyYW5zZm9ybWVkIDMtZmFjdG9yIHNvbHV0aW9uIikgIyArCiAgIyB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCmBgYAoKYGBge3J9CmZpZ3VyZUEuOCA8LSBwbG90X2dyaWQoSUZjb3JfZWZhXzNfZDJfYWRfb2JsaW1pbiwgSUZjb3JfZWZhXzRfZDJfYWRfb2JsaW1pbiwKICAgICAgICAgICAgICAgICAgICAgICAgSUZjb3JfZWZhXzNfZDJfNzlfb2JsaW1pbiwKICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxzID0gIkFVVE8iLCBuY29sID0gMywgcmVsX3dpZHRocyA9IGMoMSwgMSwgMS4yKSkKCmZpZ3VyZUEuOF9jYXAgPC0gYWRkX3N1YihmaWd1cmVBLjgsIHN0cl93cmFwKCJGaWd1cmUgQS44OiBJbnRlci1mYWN0b3IgY29ycmVsYXRpb25zIGZyb20gZXhwbG9yYXRvcnkgZmFjdG9yIGFuYWx5c2VzIG9mIFN0dWR5IDIgYWZ0ZXIgb2JsaW1pbiB0cmFuc2Zvcm1hdGlvbi4gU2VlIENoYXB0ZXIgSUkgZm9yIG1ldGhvZHMuIChBKSBVUyBhZHVsdHMsIDMtZmFjdG9yIHNvbHV0aW9uLiAoQikgVVMgYWR1bHRzLCA0LWZhY3RvciBzb2x1dGlvbi4gKEMpIFVTIGNoaWxkcmVuIGFnZXMgNy05eS4gRmFjdG9ycyBoYXZlIGJlZW4gbGFiZWxlZCB3aXRoIHRoZSBsYWJlbHMgJ0JPRFksJyAnSEVBUlQsJyBhbmQgJ01JTkQsJyB3aGVuIGFwcGxpY2FibGUsIHRvIGZhY2lsaXRhdGUgY29tcGFyaXNvbiBhY3Jvc3Mgc3R1ZGllcy4iLCAxNDApLCB4ID0gMCwgaGp1c3QgPSAwKQpgYGAKCmBgYHtyIGZpZ3VyZUEuOCwgaW5jbHVkZSA9IFQsIGZpZy53aWR0aCA9IDYsIGZpZy5hc3AgPSAwLjR9CmdnZHJhdyhmaWd1cmVBLjhfY2FwKQpgYGAKCgojIyBTdHVkeSAzCgojIyMgRUZBIHNvbHV0aW9ucwoKVmFyaW91cyBmYWN0b3IgcmV0ZW50aW9uIHByb3RvY29scyBzdWdnZXN0ZWQgcmV0YWluaW5nIGVpdGhlciAzIG9yIDQgZmFjdG9ycyBmb3IgYWR1bHRzIGluIFN0dWR5IDM7IDMgZmFjdG9ycyBmb3Igb2xkZXIgY2hpbGRyZW4gKGFnZXMgNy05eSk7IGFuZCBlaXRoZXIgMSwgMywgb3IgNCBmYWN0b3JzIGZvciB5b3VuZ2VyIGNoaWxkcmVuIChhZ2VzIDQtNnkpLiBIZXJlLCBJIHJlcG9ydCAzLSwgYW5kIDQtZmFjdG9yIHNvbHV0aW9ucyBmb3IgYWR1bHRzLCB0aGUgMy1mYWN0b3Igc29sdXRpb24gZm9yIG9sZGVyIGNoaWxkcmVuLCBhbmQgdGhlIDEtLCAzLSwgYW5kIDQtZmFjdG9yIHNvbHV0aW9ucyBmb3IgeW91bmdlciBjaGlsZHJlbi4gV2hlbiB0aGVzZSBmYWN0b3JzIHNlZW0gc2ltaWxhciB0byB0aGUgQk9EWSwgSEVBUlQsIGFuZCBNSU5EIGZhY3RvcnMgcHJlc2VudGVkIGluIENoYXB0ZXIgSUlJLCBJIGhhdmUgbGFiZWxlZCB0aGVtIGFjY29yZGluZ2x5LgoKYGBge3J9CmVmYV8zX2QzX2FkX29ibGltaW4gPC0gZmFfZnVuKGQzX2FkX3dpZGVfaSwgMykKZWZhXzRfZDNfYWRfb2JsaW1pbiA8LSBmYV9mdW4oZDNfYWRfd2lkZV9pLCA0KQplZmFfM19kM183OV9vYmxpbWluIDwtIGZhX2Z1bihkM183OV93aWRlX2ksIDMpCmVmYV8zX2QzXzQ2X29ibGltaW4gPC0gZmFfZnVuKGQzXzQ2X3dpZGVfaSwgMykKZWZhXzJfZDNfNDZfb2JsaW1pbiA8LSBmYV9mdW4oZDNfNDZfd2lkZV9pLCAyKQplZmFfMV9kM180Nl9vYmxpbWluIDwtIGZhX2Z1bihkM180Nl93aWRlX2ksIDEpCmBgYAoKYGBge3J9CmZhY3Rvcl9uYW1lc19lZmFfM19kM19hZF9vYmxpbWluIDwtIGMoIkJPRFkiLCAiSEVBUlQiLCAiTUlORCIpCmZhY3Rvcl9uYW1lc19lZmFfNF9kM19hZF9vYmxpbWluIDwtIGMoIkJPRFkiLCAiTUlORCIsICJIRUFSVCAoc29jaWFsKSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJIRUFSVCAoYmFzaWMpIikKZmFjdG9yX25hbWVzX2VmYV8zX2QzXzc5X29ibGltaW4gPC0gYygiQk9EWSIsICJIRUFSVCIsICJNSU5EIikKZmFjdG9yX25hbWVzX2VmYV8zX2QzXzQ2X29ibGltaW4gPC0gYygiQk9EWS1IRUFSVCAobmVnYXRpdmUpIiwgIkJPRFktSEVBUlQgKHBvc2l0aXZlKSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNSU5EIikKZmFjdG9yX25hbWVzX2VmYV8yX2QzXzQ2X29ibGltaW4gPC0gYygiQk9EWS1IRUFSVCIsICJNSU5EIikKZmFjdG9yX25hbWVzX2VmYV8xX2QzXzQ2X29ibGltaW4gPC0gYygiTkEiKQpgYGAKCmBgYHtyfQpwbG90X2VmYV8zX2QzX2FkX29ibGltaW4gPC0gaGVhdG1hcF9mdW4oCiAgZWZhXzNfZDNfYWRfb2JsaW1pbiwgZmFjdG9yX25hbWVzID0gZmFjdG9yX25hbWVzX2VmYV8zX2QzX2FkX29ibGltaW4pICsKICBsYWJzKHRpdGxlID0gIlN0dWR5IDMsIEFkdWx0cyIsIAogICAgICAgc3VidGl0bGUgPSAiT2JsaW1pbi10cmFuc2Zvcm1lZCAzLWZhY3RvciBzb2x1dGlvbiIpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCgpwbG90X2VmYV80X2QzX2FkX29ibGltaW4gPC0gaGVhdG1hcF9mdW4oCiAgZWZhXzRfZDNfYWRfb2JsaW1pbiwgZmFjdG9yX25hbWVzID0gZmFjdG9yX25hbWVzX2VmYV80X2QzX2FkX29ibGltaW4pICsKICBsYWJzKHRpdGxlID0gIlN0dWR5IDMsIEFkdWx0cyIsIAogICAgICAgc3VidGl0bGUgPSAiT2JsaW1pbi10cmFuc2Zvcm1lZCA0LWZhY3RvciBzb2x1dGlvbiIpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCgpwbG90X2VmYV8zX2QzXzc5X29ibGltaW4gPC0gaGVhdG1hcF9mdW4oCiAgZWZhXzNfZDNfNzlfb2JsaW1pbiwgZmFjdG9yX25hbWVzID0gZmFjdG9yX25hbWVzX2VmYV8zX2QzXzc5X29ibGltaW4pICsKICBsYWJzKHRpdGxlID0gIlN0dWR5IDMsIE9sZGVyIGNoaWxkcmVuICg3LTl5KSIsIAogICAgICAgc3VidGl0bGUgPSAiT2JsaW1pbi10cmFuc2Zvcm1lZCAzLWZhY3RvciBzb2x1dGlvbiIpICMgKwogICMgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQoKcGxvdF9lZmFfM19kM180Nl9vYmxpbWluIDwtIGhlYXRtYXBfZnVuKAogIGVmYV8zX2QzXzQ2X29ibGltaW4sIGZhY3Rvcl9uYW1lcyA9IGZhY3Rvcl9uYW1lc19lZmFfM19kM180Nl9vYmxpbWluKSArCiAgbGFicyh0aXRsZSA9ICJTdHVkeSAzLCBZb3VuZ2VyIGNoaWxkcmVuICg0LTZ5KSIsIAogICAgICAgc3VidGl0bGUgPSAiT2JsaW1pbi10cmFuc2Zvcm1lZCAzLWZhY3RvciBzb2x1dGlvbiIpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCgpwbG90X2VmYV8yX2QzXzQ2X29ibGltaW4gPC0gaGVhdG1hcF9mdW4oCiAgZWZhXzJfZDNfNDZfb2JsaW1pbiwgZmFjdG9yX25hbWVzID0gZmFjdG9yX25hbWVzX2VmYV8yX2QzXzQ2X29ibGltaW4pICsKICBsYWJzKHRpdGxlID0gIlN0dWR5IDMsIFlvdW5nZXIgY2hpbGRyZW4gKDQtNnkpIiwgCiAgICAgICBzdWJ0aXRsZSA9ICJPYmxpbWluLXRyYW5zZm9ybWVkIDItZmFjdG9yIHNvbHV0aW9uIikgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKCnBsb3RfZWZhXzFfZDNfNDZfb2JsaW1pbiA8LSBoZWF0bWFwX2Z1bigKICBlZmFfMV9kM180Nl9vYmxpbWluLCBmYWN0b3JfbmFtZXMgPSBmYWN0b3JfbmFtZXNfZWZhXzFfZDNfNDZfb2JsaW1pbikgKwogIGxhYnModGl0bGUgPSAiU3R1ZHkgMywgWW91bmdlciBjaGlsZHJlbiAoNC02eSkiLCAKICAgICAgIHN1YnRpdGxlID0gIk9ibGltaW4tdHJhbnNmb3JtZWQgMS1mYWN0b3IgKG51bGwpIHNvbHV0aW9uIikgIyArCiAgIyB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCmBgYAoKYGBge3J9CmZpZ3VyZUEuOSA8LSBwbG90X2dyaWQocGxvdF9lZmFfM19kM19hZF9vYmxpbWluLCBwbG90X2VmYV80X2QzX2FkX29ibGltaW4sCiAgICAgICAgICAgICAgICAgICAgICAgcGxvdF9lZmFfM19kM183OV9vYmxpbWluLCBwbG90X2VmYV8zX2QzXzQ2X29ibGltaW4sCiAgICAgICAgICAgICAgICAgICAgICAgcGxvdF9lZmFfMl9kM180Nl9vYmxpbWluLCBwbG90X2VmYV8xX2QzXzQ2X29ibGltaW4sCiAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxzID0gIkFVVE8iLCBuY29sID0gMywgcmVsX3dpZHRocyA9IGMoMSwgMSwgMS4yKSkKCmZpZ3VyZUEuOV9jYXAgPC0gYWRkX3N1YihmaWd1cmVBLjksIHN0cl93cmFwKCJGaWd1cmUgQS45OiBGYWN0b3IgbG9hZGluZ3MgZnJvbSBleHBsb3JhdG9yeSBmYWN0b3IgYW5hbHlzZXMgb2YgU3R1ZHkgMyBhZnRlciBvYmxpbWluIHRyYW5zZm9ybWF0aW9uLiBTZWUgQ2hhcHRlciBJSSBmb3IgbWV0aG9kcy4gKEEpIFVTIGFkdWx0cywgMy1mYWN0b3Igc29sdXRpb24uIChCKSBVUyBhZHVsdHMsIDQtZmFjdG9yIHNvbHV0aW9uLiAoQykgVVMgY2hpbGRyZW4gYWdlcyA3LTl5LiAoRCkgVVMgY2hpbGRyZW4gYWdlcyA0LTZ5LCAzLWZhY3RvciBzb2x1dGlvbi4gKEUpIFVTIGNoaWxkcmVuIGFnZXMgNC02eSwgMi1mYWN0b3Igc29sdXRpb24uIChGKSBVUyBjaGlsZHJlbiBhZ2VzIDQtNnksIDEtZmFjdG9yIChudWxsKSBzb2x1dGlvbi4gSW4gdGhpcyBhbmQgYWxsIGZpZ3VyZXMgcG9ydHJheWluZyBmYWN0b3IgbG9hZGluZ3MsIGZhY3RvcnMgaGF2ZSBiZWVuIHBsb3R0ZWQgaW4gdGhlIHNhbWUgb3JkZXIgKEJPRFksIEhFQVJULCBNSU5EKSwgd2hlbiBhcHBsaWNhYmxlLCB0byBmYWNpbGl0YXRlIGNvbXBhcmlzb24gYWNyb3NzIHN0dWRpZXMuIEEgZmFjdG9yIGxvYWRpbmcgb2YgKzEgaW5kaWNhdGVzIGEgcGVyZmVjdGx5IHBvc2l0aXZlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIG1lbnRhbCBjYXBhY2l0eSBhbmQgdW5kZXJseWluZyBjb25zdHJ1Y3Q7IGEgbG9hZGluZyBvZiAtMSBpbmRpY2F0ZXMgYSBwZXJmZWN0bHkgbmVnYXRpdmUgcmVsYXRpb25zaGlwLiIsIDIxMCksIHggPSAwLCBoanVzdCA9IDApCmBgYAoKYGBge3IgZmlndXJlQS45LCBpbmNsdWRlID0gVCwgZmlnLndpZHRoID0gOSwgZmlnLmFzcCA9IDF9CmdnZHJhdyhmaWd1cmVBLjlfY2FwKQpgYGAKCiMjIyBJbnRlci1mYWN0b3IgY29ycmVsYXRpb25zCgpIZXJlIEkgcHJlc2VudCBpbnRlci1mYWN0b3IgY29ycmVsYXRpb25zIGZvciBhbGwgb2YgdGhlIGFib3ZlIEVGQSBzb2x1dGlvbnMgZm9yIFN0dWR5IDMgKHdpdGggdGhlIGV4Y2VwdGlvbiBvZiB0aGUgMS1mYWN0b3IgbnVsbCBzb2x1dGlvbiBmb3IgeW91bmdlciBjaGlsZHJlbikuIAoKYGBge3J9CklGY29yX2VmYV8zX2QzX2FkX29ibGltaW4gPC0gSUZjb3JfcGxvdF9mdW4oCiAgZWZhXzNfZDNfYWRfb2JsaW1pbiwgZmFjdG9yX25hbWVzID0gZmFjdG9yX25hbWVzX2VmYV8zX2QzX2FkX29ibGltaW4pICsKICBsYWJzKHRpdGxlID0gIlN0dWR5IDMsIEFkdWx0cyIsIAogICAgICAgc3VidGl0bGUgPSAiT2JsaW1pbi10cmFuc2Zvcm1lZCAzLWZhY3RvciBzb2x1dGlvbiIpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCgpJRmNvcl9lZmFfNF9kM19hZF9vYmxpbWluIDwtIElGY29yX3Bsb3RfZnVuKAogIGVmYV80X2QzX2FkX29ibGltaW4sIGZhY3Rvcl9uYW1lcyA9IGZhY3Rvcl9uYW1lc19lZmFfNF9kM19hZF9vYmxpbWluKSArCiAgbGFicyh0aXRsZSA9ICJTdHVkeSAzLCBBZHVsdHMiLCAKICAgICAgIHN1YnRpdGxlID0gIk9ibGltaW4tdHJhbnNmb3JtZWQgNC1mYWN0b3Igc29sdXRpb24iKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQoKSUZjb3JfZWZhXzNfZDNfNzlfb2JsaW1pbiA8LSBJRmNvcl9wbG90X2Z1bigKICBlZmFfM19kM183OV9vYmxpbWluLCBmYWN0b3JfbmFtZXMgPSBmYWN0b3JfbmFtZXNfZWZhXzNfZDNfNzlfb2JsaW1pbikgKwogIGxhYnModGl0bGUgPSAiU3R1ZHkgMywgT2xkZXIgY2hpbGRyZW4gKDctOXkpIiwgCiAgICAgICBzdWJ0aXRsZSA9ICJPYmxpbWluLXRyYW5zZm9ybWVkIDMtZmFjdG9yIHNvbHV0aW9uIikgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKCklGY29yX2VmYV8zX2QzXzQ2X29ibGltaW4gPC0gSUZjb3JfcGxvdF9mdW4oCiAgZWZhXzNfZDNfNDZfb2JsaW1pbiwgZmFjdG9yX25hbWVzID0gZmFjdG9yX25hbWVzX2VmYV8zX2QzXzQ2X29ibGltaW4pICsKICBsYWJzKHRpdGxlID0gIlN0dWR5IDMsIFlvdW5nZXIgY2hpbGRyZW4gKDQtNnkpIiwgCiAgICAgICBzdWJ0aXRsZSA9ICJPYmxpbWluLXRyYW5zZm9ybWVkIDMtZmFjdG9yIHNvbHV0aW9uIikgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKCklGY29yX2VmYV8yX2QzXzQ2X29ibGltaW4gPC0gSUZjb3JfcGxvdF9mdW4oCiAgZWZhXzJfZDNfNDZfb2JsaW1pbiwgZmFjdG9yX25hbWVzID0gZmFjdG9yX25hbWVzX2VmYV8yX2QzXzQ2X29ibGltaW4pICsKICBsYWJzKHRpdGxlID0gIlN0dWR5IDMsIFlvdW5nZXIgY2hpbGRyZW4gKDQtNnkpIiwgCiAgICAgICBzdWJ0aXRsZSA9ICJPYmxpbWluLXRyYW5zZm9ybWVkIDItZmFjdG9yIHNvbHV0aW9uIikgIyArCiAgIyB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCmBgYAoKYGBge3J9CmZpZ3VyZUEuMTAgPC0gcGxvdF9ncmlkKElGY29yX2VmYV8zX2QzX2FkX29ibGltaW4sIElGY29yX2VmYV80X2QzX2FkX29ibGltaW4sCiAgICAgICAgICAgICAgICAgICAgICAgIElGY29yX2VmYV8zX2QzXzc5X29ibGltaW4sIElGY29yX2VmYV8zX2QzXzQ2X29ibGltaW4sCiAgICAgICAgICAgICAgICAgICAgICAgIElGY29yX2VmYV8yX2QzXzQ2X29ibGltaW4sCiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVscyA9ICJBVVRPIiwgbmNvbCA9IDUsIHJlbF93aWR0aHMgPSBjKDEsIDEsIDEsIDEsIDEpKQoKZmlndXJlQS4xMF9jYXAgPC0gYWRkX3N1YihmaWd1cmVBLjEwLCBzdHJfd3JhcCgiRmlndXJlIEEuMTA6IEludGVyLWZhY3RvciBjb3JyZWxhdGlvbnMgZnJvbSBleHBsb3JhdG9yeSBmYWN0b3IgYW5hbHlzZXMgb2YgU3R1ZHkgMyBhZnRlciBvYmxpbWluIHRyYW5zZm9ybWF0aW9uLiBTZWUgQ2hhcHRlciBJSSBmb3IgbWV0aG9kcy4gKEEpIFVTIGFkdWx0cywgMy1mYWN0b3Igc29sdXRpb24uIChCKSBVUyBhZHVsdHMsIDQtZmFjdG9yIHNvbHV0aW9uLiAoQykgVVMgY2hpbGRyZW4gYWdlcyA3LTl5LiAoRCkgVVMgY2hpbGRyZW4gYWdlcyA0LTZ5LCAzLWZhY3RvciBzb2x1dGlvbi4gKEUpIFVTIGNoaWxkcmVuIGFnZXMgNC02eSwgMi1mYWN0b3Igc29sdXRpb24uIEZhY3RvcnMgaGF2ZSBiZWVuIGxhYmVsZWQgd2l0aCB0aGUgbGFiZWxzICdCT0RZLCcgJ0hFQVJULCcgYW5kICdNSU5ELCcgd2hlbiBhcHBsaWNhYmxlLCB0byBmYWNpbGl0YXRlIGNvbXBhcmlzb24gYWNyb3NzIHN0dWRpZXMuIiwgMjMwKSwgeCA9IDAsIGhqdXN0ID0gMCkKYGBgCgpgYGB7ciBmaWd1cmVBLjEwLCBpbmNsdWRlID0gVCwgZmlnLndpZHRoID0gMTAsIGZpZy5hc3AgPSAwLjI1fQpnZ2RyYXcoZmlndXJlQS4xMF9jYXApCmBgYAoKCiMjIFN0dWR5IDQKCiMjIyBFRkEgc29sdXRpb25zCgpBbGwgZmFjdG9yIHJldGVudGlvbiBwcm90b2NvbHMgc3VnZ2VzdGVkIHJldGFpbmluZyAzIGZhY3RvcnMgZm9yIGFkdWx0cyBpbiBTdHVkeSA0OyBkaWZmZXJlbnQgcHJvdG9jb2xzIHN1Z2dlc3RlZCByZXRhaW5pbmcgZWl0aGVyIGVpdGhlciAxLCAzLCBvciA0IGZhY3RvcnMgZm9yIGNoaWxkcmVuIChhZ2VzIDQtNXkpLiBIZXJlLCBJIHJlcG9ydCB0aGUgMy1mYWN0b3Igc29sdXRpb24gZm9yIGFkdWx0cywgYW5kIHRoZSAxLSwgMy0sIGFuZCA0LWZhY3RvciBzb2x1dGlvbnMgZm9yIGNoaWxkcmVuLiBXaGVuIHRoZXNlIGZhY3RvcnMgc2VlbSBzaW1pbGFyIHRvIHRoZSBCT0RZLCBIRUFSVCwgYW5kIE1JTkQgZmFjdG9ycyBwcmVzZW50ZWQgaW4gQ2hhcHRlciBJSUksIEkgaGF2ZSBsYWJlbGVkIHRoZW0gYWNjb3JkaW5nbHkuCgpgYGB7cn0KZWZhXzNfZDRfYWRfb2JsaW1pbiA8LSBmYV9mdW4oZDRfYWRfd2lkZV9pLCAzKQplZmFfM19kNF80Nl9vYmxpbWluIDwtIGZhX2Z1bihkNF80Nl93aWRlX2ksIDMpCmVmYV80X2Q0XzQ2X29ibGltaW4gPC0gZmFfZnVuKGQ0XzQ2X3dpZGVfaSwgNCkKZWZhXzFfZDRfNDZfb2JsaW1pbiA8LSBmYV9mdW4oZDRfNDZfd2lkZV9pLCAxKQpgYGAKCmBgYHtyfQpmYWN0b3JfbmFtZXNfZWZhXzNfZDRfYWRfb2JsaW1pbiA8LSBjKCJCT0RZIiwgIkhFQVJUIiwgIk1JTkQiKQpmYWN0b3JfbmFtZXNfZWZhXzNfZDRfNDZfb2JsaW1pbiA8LSBjKCJCT0RZIiwgIk1JTkQtSEVBUlQiLCAiSEVBUlQgKG5lZ2F0aXZlKSIpCmZhY3Rvcl9uYW1lc19lZmFfNF9kNF80Nl9vYmxpbWluIDwtIGMoIk1JTkQtSEVBUlQiLCAiQk9EWSIsICJCT0RZIChuYXVzZWEpIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSEVBUlQgKG5lZ2F0aXZlKSIpCmZhY3Rvcl9uYW1lc19lZmFfMV9kNF80Nl9vYmxpbWluIDwtIGMoIk5BIikKYGBgCgpgYGB7cn0KcGxvdF9lZmFfM19kNF9hZF9vYmxpbWluIDwtIGhlYXRtYXBfZnVuKAogIGVmYV8zX2Q0X2FkX29ibGltaW4sIGZhY3Rvcl9uYW1lcyA9IGZhY3Rvcl9uYW1lc19lZmFfM19kNF9hZF9vYmxpbWluKSArCiAgbGFicyh0aXRsZSA9ICJTdHVkeSA0LCBBZHVsdHMiLCAKICAgICAgIHN1YnRpdGxlID0gIk9ibGltaW4tdHJhbnNmb3JtZWQgMy1mYWN0b3Igc29sdXRpb24iKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQoKcGxvdF9lZmFfM19kNF80Nl9vYmxpbWluIDwtIGhlYXRtYXBfZnVuKAogIGVmYV8zX2Q0XzQ2X29ibGltaW4sIGZhY3Rvcl9uYW1lcyA9IGZhY3Rvcl9uYW1lc19lZmFfM19kNF80Nl9vYmxpbWluKSArCiAgbGFicyh0aXRsZSA9ICJTdHVkeSA0LCBDaGlsZHJlbiAoNC02eSkiLCAKICAgICAgIHN1YnRpdGxlID0gIk9ibGltaW4tdHJhbnNmb3JtZWQgMy1mYWN0b3Igc29sdXRpb24iKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQoKcGxvdF9lZmFfNF9kNF80Nl9vYmxpbWluIDwtIGhlYXRtYXBfZnVuKAogIGVmYV80X2Q0XzQ2X29ibGltaW4sIGZhY3Rvcl9uYW1lcyA9IGZhY3Rvcl9uYW1lc19lZmFfNF9kNF80Nl9vYmxpbWluKSArCiAgbGFicyh0aXRsZSA9ICJTdHVkeSA0LCBDaGlsZHJlbiAoNC01eSkiLCAKICAgICAgIHN1YnRpdGxlID0gIk9ibGltaW4tdHJhbnNmb3JtZWQgNC1mYWN0b3Igc29sdXRpb24iKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQoKcGxvdF9lZmFfMV9kNF80Nl9vYmxpbWluIDwtIGhlYXRtYXBfZnVuKAogIGVmYV8xX2Q0XzQ2X29ibGltaW4sIGZhY3Rvcl9uYW1lcyA9IGZhY3Rvcl9uYW1lc19lZmFfMV9kNF80Nl9vYmxpbWluKSArCiAgbGFicyh0aXRsZSA9ICJTdHVkeSA0LCBDaGlsZHJlbiAoNC01eSkiLCAKICAgICAgIHN1YnRpdGxlID0gIk9ibGltaW4tdHJhbnNmb3JtZWQgMS1mYWN0b3IgKG51bGwpIHNvbHV0aW9uIikgIyArCiAgIyB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCmBgYAoKYGBge3J9CmZpZ3VyZUEuMTEgPC0gcGxvdF9ncmlkKHBsb3RfZWZhXzNfZDRfYWRfb2JsaW1pbiwgcGxvdF9lZmFfM19kNF80Nl9vYmxpbWluLAogICAgICAgICAgICAgICAgICAgICAgIHBsb3RfZWZhXzRfZDRfNDZfb2JsaW1pbiwgcGxvdF9lZmFfMV9kNF80Nl9vYmxpbWluLAogICAgICAgICAgICAgICAgICAgICAgIGxhYmVscyA9ICJBVVRPIiwgbmNvbCA9IDQsIHJlbF93aWR0aHMgPSBjKDEsIDEsIDEsIDEpKQoKZmlndXJlQS4xMV9jYXAgPC0gYWRkX3N1YihmaWd1cmVBLjExLCBzdHJfd3JhcCgiRmlndXJlIEEuMTE6IEZhY3RvciBsb2FkaW5ncyBmcm9tIGV4cGxvcmF0b3J5IGZhY3RvciBhbmFseXNlcyBvZiBTdHVkeSA0IGFmdGVyIG9ibGltaW4gdHJhbnNmb3JtYXRpb24uIFNlZSBDaGFwdGVyIElJIGZvciBtZXRob2RzLiAoQSkgVVMgYWR1bHRzLiAoQikgVVMgY2hpbGRyZW4gYWdlcyA0LTV5LCAzLWZhY3RvciBzb2x1dGlvbi4gKEMpIFVTIGNoaWxkcmVuIGFnZXMgNC01eSwgNC1mYWN0b3Igc29sdXRpb24uIChEKSBVUyBjaGlsZHJlbiBhZ2VzIDQtNXksIDEtZmFjdG9yIChudWxsKSBzb2x1dGlvbi4gSW4gdGhpcyBhbmQgYWxsIGZpZ3VyZXMgcG9ydHJheWluZyBmYWN0b3IgbG9hZGluZ3MsIGZhY3RvcnMgaGF2ZSBiZWVuIHBsb3R0ZWQgaW4gdGhlIHNhbWUgb3JkZXIgKEJPRFksIEhFQVJULCBNSU5EKSwgd2hlbiBhcHBsaWNhYmxlLCB0byBmYWNpbGl0YXRlIGNvbXBhcmlzb24gYWNyb3NzIHN0dWRpZXMuIEEgZmFjdG9yIGxvYWRpbmcgb2YgKzEgaW5kaWNhdGVzIGEgcGVyZmVjdGx5IHBvc2l0aXZlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIG1lbnRhbCBjYXBhY2l0eSBhbmQgdW5kZXJseWluZyBjb25zdHJ1Y3Q7IGEgbG9hZGluZyBvZiAtMSBpbmRpY2F0ZXMgYSBwZXJmZWN0bHkgbmVnYXRpdmUgcmVsYXRpb25zaGlwLiIsIDIxMCksIHggPSAwLCBoanVzdCA9IDApCmBgYAoKYGBge3IgZmlndXJlQS4xMSwgaW5jbHVkZSA9IFQsIGZpZy53aWR0aCA9IDksIGZpZy5hc3AgPSAwLjZ9CmdnZHJhdyhmaWd1cmVBLjExX2NhcCkKYGBgCgojIyMgSW50ZXItZmFjdG9yIGNvcnJlbGF0aW9ucwoKSGVyZSBJIHByZXNlbnQgaW50ZXItZmFjdG9yIGNvcnJlbGF0aW9ucyBmb3IgYWxsIG9mIHRoZSBhYm92ZSBFRkEgc29sdXRpb25zIGZvciBTdHVkeSA0ICh3aXRoIHRoZSBleGNlcHRpb24gb2YgdGhlIDEtZmFjdG9yIG51bGwgc29sdXRpb24gZm9yIGNoaWxkcmVuKS4gCgpgYGB7cn0KSUZjb3JfZWZhXzNfZDRfYWRfb2JsaW1pbiA8LSBJRmNvcl9wbG90X2Z1bigKICBlZmFfM19kNF9hZF9vYmxpbWluLCBmYWN0b3JfbmFtZXMgPSBmYWN0b3JfbmFtZXNfZWZhXzNfZDRfYWRfb2JsaW1pbikgKwogIGxhYnModGl0bGUgPSAiU3R1ZHkgNCwgQWR1bHRzIiwgCiAgICAgICBzdWJ0aXRsZSA9ICJPYmxpbWluLXRyYW5zZm9ybWVkIDMtZmFjdG9yIHNvbHV0aW9uIikgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKCklGY29yX2VmYV8zX2Q0XzQ2X29ibGltaW4gPC0gSUZjb3JfcGxvdF9mdW4oCiAgZWZhXzNfZDRfNDZfb2JsaW1pbiwgZmFjdG9yX25hbWVzID0gZmFjdG9yX25hbWVzX2VmYV8zX2Q0XzQ2X29ibGltaW4pICsKICBsYWJzKHRpdGxlID0gIlN0dWR5IDQsIENoaWxkcmVuICg0LTV5KSIsIAogICAgICAgc3VidGl0bGUgPSAiT2JsaW1pbi10cmFuc2Zvcm1lZCAzLWZhY3RvciBzb2x1dGlvbiIpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCgpJRmNvcl9lZmFfNF9kNF80Nl9vYmxpbWluIDwtIElGY29yX3Bsb3RfZnVuKAogIGVmYV80X2Q0XzQ2X29ibGltaW4sIGZhY3Rvcl9uYW1lcyA9IGZhY3Rvcl9uYW1lc19lZmFfNF9kNF80Nl9vYmxpbWluKSArCiAgbGFicyh0aXRsZSA9ICJTdHVkeSA0LCBDaGlsZHJlbiAoNC01eSkiLCAKICAgICAgIHN1YnRpdGxlID0gIk9ibGltaW4tdHJhbnNmb3JtZWQgNC1mYWN0b3Igc29sdXRpb24iKSAjICsKICAjIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKYGBgCgpgYGB7cn0KZmlndXJlQS4xMiA8LSBwbG90X2dyaWQoSUZjb3JfZWZhXzNfZDRfYWRfb2JsaW1pbiwgSUZjb3JfZWZhXzNfZDRfNDZfb2JsaW1pbiwKICAgICAgICAgICAgICAgICAgICAgICAgSUZjb3JfZWZhXzRfZDRfNDZfb2JsaW1pbiwKICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxzID0gIkFVVE8iLCBuY29sID0gMywgcmVsX3dpZHRocyA9IGMoMSwgMSwgMS4yKSkKCmZpZ3VyZUEuMTJfY2FwIDwtIGFkZF9zdWIoZmlndXJlQS4xMiwgc3RyX3dyYXAoIkZpZ3VyZSBBLjEyOiBJbnRlci1mYWN0b3IgY29ycmVsYXRpb25zIGZyb20gZXhwbG9yYXRvcnkgZmFjdG9yIGFuYWx5c2VzIG9mIFN0dWR5IDQgYWZ0ZXIgb2JsaW1pbiB0cmFuc2Zvcm1hdGlvbi4gU2VlIENoYXB0ZXIgSUkgZm9yIG1ldGhvZHMuIChBKSBVUyBhZHVsdHMuIChCKSBVUyBjaGlsZHJlbiBhZ2VzIDQtNXksIDMtZmFjdG9yIHNvbHV0aW9uLiAoQykgVVMgY2hpbGRyZW4gYWdlcyA0LTV5LCAzLWZhY3RvciBzb2x1dGlvbi4gRmFjdG9ycyBoYXZlIGJlZW4gbGFiZWxlZCB3aXRoIHRoZSBsYWJlbHMgJ0JPRFksJyAnSEVBUlQsJyBhbmQgJ01JTkQsJyB3aGVuIGFwcGxpY2FibGUsIHRvIGZhY2lsaXRhdGUgY29tcGFyaXNvbiBhY3Jvc3Mgc3R1ZGllcy4iLCAxNDApLCB4ID0gMCwgaGp1c3QgPSAwKQpgYGAKCmBgYHtyIGZpZ3VyZUEuMTIsIGluY2x1ZGUgPSBULCBmaWcud2lkdGggPSA2LCBmaWcuYXNwID0gMC40fQpnZ2RyYXcoZmlndXJlQS4xMl9jYXApCmBgYAoKCiMgVmFyaW1heC1yb3RhdGVkIHNvbHV0aW9ucyBwcmV2aW91c2x5IGRlZW1lZCByZWR1bmRhbnQKCkluIENoYXB0ZXIgSUlJLCBJIGZvY3VzZWQgbXkgaW50ZXJwcmV0YXRpb24gb24gYSBzdWJzZXQgb2YgdGhlIEVGQSBzb2x1dGlvbnMgc3VnZ2VzdGVkIGJ5IHRoZSB0aHJlZSBmYWN0b3IgcmV0ZW50aW9uIHByb3RvY29scywgZXhjbHVkaW5nIHRob3NlIHNvbHV0aW9ucyBpbiB3aGljaCBhZGRpdGlvbmFsIGZhY3RvcnMgd2VyZSByZWR1bmRhbnQgd2l0aCB0aGUgMy1mYWN0b3IgKEJPRFktSEVBUlQtTUlORCkgc29sdXRpb24uIFRoZXNlIGFkZGl0aW9uYWwgZmFjdG9ycyB0ZW5kIHRvIGV4cGxhaW4gdmVyeSBsaXR0bGUgb2YgdGhlIHNoYXJlZCB2YXJpYW5jZTsgdGVuZCBub3QgdG8gYmUgdGhlIGRvbWluYW50IGZhY3RvciAodGhlIGZhY3RvciB3aXRoIHRoZSBzdHJvbmdlc3QgYWJzb2x1dGUgZmFjdG9yIGxvYWRpbmcpIGZvciBtYW55LCBpZiBhbnksIG1lbnRhbCBjYXBhY2l0aWVzOyBhbmQgdGVuZCB0byBoYXZlIHZlcnkgd2VhayBmYWN0b3IgbG9hZGluZ3MuIEkgaW5jbHVkZSB0aGVtIGhlcmUgZm9yIGNvbXBsZXRlbmVzcy4KCiMjIFN0dWR5IDEKClRoZSBmYWN0b3IgcmV0ZW50aW9uIGNyaXRlcmlhIGVtcGxveWVkIGluIFdlaXNtYW4gZXQgYWwuICgyMDE3KSBzdWdnZXN0ZWQgcmV0YWluaW5nIDMgZmFjdG9ycyBmb3IgYWxsIG9mIHRoZSBzdHVkaWVzIGluY2x1ZGVkIGluIFN0dWR5IDE7IHNlZSBDaGFwdGVyIElJSS4gSW4gY29udHJhc3QsIHBhcmFsbGVsIGFuYWx5c2lzIHN1Z2dlc3RlZCByZXRhaW5pbmcgNCBmYWN0b3JzIChpbnN0ZWFkIG9mIDMpIGZvciBTdHVkaWVzIDFiIGFuZCAxZDsgbWluaW1pemluZyBCSUMgc3VnZ2VzdGVkIHJldGFpbmluZyA0IGZhY3RvcnMgKGluc3RlYWQgb2YgMykgZm9yIFN0dWR5IDFjLCBhbmQgNSBmYWN0b3JzIChpbnN0ZWFkIG9mIDMpIGZvciBTdHVkaWVzIDFhLCAxYiwgYW5kIDFkLiBTZWUgRmlndXJlIEEuMTMuCgpgYGB7cn0KIyBzdHVkeSAxYQpwbG90X2VmYV9iaWNfZDFhX2FkIDwtIGhlYXRtYXBfZnVuKGVmYV9iaWNfZDFhX2FkLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjKCJCT0RZIiwgIkhFQVJUIiwgIk1JTkQiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGYWN0b3IgNCIsICJGYWN0b3IgNSIpKSArCiAgbGFicyh0aXRsZSA9ICJTdHVkeSAxYSIsIHN1YnRpdGxlID0gIjUtZmFjdG9yIHNvbHV0aW9uIikgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKCiMgc3R1ZHkgMWIKcGxvdF9lZmFfcGFyX2QxYl9hZCA8LSBoZWF0bWFwX2Z1bihlZmFfcGFyX2QxYl9hZCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYygiQk9EWSIsICJIRUFSVCIsICJNSU5EIikpICsKICBsYWJzKHRpdGxlID0gIlN0dWR5IDFiIiwgc3VidGl0bGUgPSAiNC1mYWN0b3Igc29sdXRpb24iKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQoKcGxvdF9lZmFfYmljX2QxYl9hZCA8LSBoZWF0bWFwX2Z1bihlZmFfYmljX2QxYl9hZCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYygiQk9EWSIsICJIRUFSVCIsICJNSU5EIiwgIkZhY3RvciA0IikpICsKICBsYWJzKHRpdGxlID0gIlN0dWR5IDFiIiwgc3VidGl0bGUgPSAiNS1mYWN0b3Igc29sdXRpb24iKSAjICsKICAjIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKCiMgc3R1ZHkgMWMKcGxvdF9lZmFfYmljX2QxY19hZCA8LSBoZWF0bWFwX2Z1bihlZmFfYmljX2QxY19hZCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYygiQk9EWSIsICJIRUFSVCIsICJNSU5EIiwgIkZhY3RvciA0IikpICsKICBsYWJzKHRpdGxlID0gIlN0dWR5IDFjIiwgc3VidGl0bGUgPSAiNC1mYWN0b3Igc29sdXRpb24iKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQoKIyBzdHVkeSAxZApwbG90X2VmYV9wYXJfZDFkX2FkIDwtIGhlYXRtYXBfZnVuKGVmYV9wYXJfZDFkX2FkLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjKCJCT0RZIiwgIkhFQVJUIiwgIk1JTkQiLCAiRmFjdG9yIDQiKSkgKwogIGxhYnModGl0bGUgPSAiU3R1ZHkgMWQiLCBzdWJ0aXRsZSA9ICI0LWZhY3RvciBzb2x1dGlvbiIpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCgpwbG90X2VmYV9iaWNfZDFkX2FkIDwtIGhlYXRtYXBfZnVuKGVmYV9iaWNfZDFkX2FkLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjKCJCT0RZIiwgIkhFQVJUIiwgIk1JTkQiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGYWN0b3IgNCIsICJGYWN0b3IgNSIpKSArCiAgbGFicyh0aXRsZSA9ICJTdHVkeSAxZCIsIHN1YnRpdGxlID0gIjUtZmFjdG9yIHNvbHV0aW9uIikgIyArCiAgIyB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCmBgYAoKYGBge3J9CmZpZ3VyZUEuMTMgPC0gcGxvdF9ncmlkKHBsb3RfZWZhX2JpY19kMWFfYWQsIAogICAgICAgICAgICAgICAgICAgICAgIHBsb3RfZWZhX3Bhcl9kMWJfYWQsIHBsb3RfZWZhX2JpY19kMWJfYWQsIAogICAgICAgICAgICAgICAgICAgICAgIHBsb3RfZWZhX2JpY19kMWNfYWQsCiAgICAgICAgICAgICAgICAgICAgICAgcGxvdF9lZmFfcGFyX2QxZF9hZCwgcGxvdF9lZmFfYmljX2QxZF9hZCwKICAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSAiQVVUTyIsIG5jb2wgPSAzLCByZWxfd2lkdGhzID0gYygxLCAxLCAxLjIpKQoKZmlndXJlQS4xM19jYXAgPC0gYWRkX3N1YihmaWd1cmVBLjEzLCBzdHJfd3JhcCgiRmlndXJlIEEuMTM6IEZhY3RvciBsb2FkaW5ncyBmcm9tIGFkZGl0aW9uYWwgZXhwbG9yYXRvcnkgZmFjdG9yIGFuYWx5c2VzIG9mIFN0dWR5IDEsIG5vdCByZXBvcnRlZCBpbiBDaGFwdGVyIElJSS4gQWxsIHJlc3VsdHMgYXJlIGZyb20gVVMgYWR1bHQgc2FtcGxlczsgc2VlIENoYXB0ZXIgSUkgZm9yIG1ldGhvZHMuIChBKSBTdHVkeSAxYSwgc29sdXRpb24gc3VnZ2VzdGVkIGJ5IG1pbmltaXppbmcgQklDLiAoQikgU3R1ZHkgMWIsIHNvbHV0aW9uIHN1Z2dlc3RlZCBieSBwYXJhbGxlbCBhbmFseXNpcy4gKEMpIFN0dWR5IDFiLCBzb2x1dGlvbiBzdWdnZXN0ZWQgYnkgbWluaW1pemluZyBCSUMuIChEKSBTdHVkeSAxYywgc29sdXRpb24gc3VnZ2VzdGVkIGJ5IG1pbmltaXppbmcgQklDLiAoRSkgU3R1ZHkgMWQsIHNvbHV0aW9uIHN1Z2dlc3RlZCBieSBwYXJhbGxlbCBhbmFseXNpcy4gKEYpIFN0dWR5IDFkLCBzb2x1dGlvbiBzdWdnZXN0ZWQgYnkgbWluaW1pemluZyBCSUMuIEluIHRoaXMgYW5kIGFsbCBmaWd1cmVzIHBvcnRyYXlpbmcgZmFjdG9yIGxvYWRpbmdzLCBmYWN0b3JzIGhhdmUgYmVlbiBwbG90dGVkIGluIHRoZSBzYW1lIG9yZGVyIChCT0RZLCBIRUFSVCwgTUlORCksIHdoZW4gYXBwbGljYWJsZSwgdG8gZmFjaWxpdGF0ZSBjb21wYXJpc29uIGFjcm9zcyBzdHVkaWVzLiBBIGZhY3RvciBsb2FkaW5nIG9mICsxIGluZGljYXRlcyBhIHBlcmZlY3RseSBwb3NpdGl2ZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBtZW50YWwgY2FwYWNpdHkgYW5kIHVuZGVybHlpbmcgY29uc3RydWN0OyBhIGxvYWRpbmcgb2YgLTEgaW5kaWNhdGVzIGEgcGVyZmVjdGx5IG5lZ2F0aXZlIHJlbGF0aW9uc2hpcC4iLCAyMDApLCB4ID0gMCwgaGp1c3QgPSAwKQpgYGAKCmBgYHtyIGZpZ3VyZUEuMTMsIGluY2x1ZGUgPSBULCBmaWcud2lkdGggPSA5LCBmaWcuYXNwID0gMX0KZ2dkcmF3KGZpZ3VyZUEuMTNfY2FwKQpgYGAKCiMjIFN0dWR5IDIKCkFsbCBvZiB0aGUgRUZBIHNvbHV0aW9ucyBzdWdnZXN0ZWQgYnkgdGhlIHRocmVlIGZhY3RvciByZXRlbnRpb24gcHJvdG9jb2xzIGFyZSByZXBvcnRlZCBpbiBmdWxsIGluIENoYXB0ZXIgSUlJLgoKIyMgU3R1ZHkgMwoKVGhlIGZhY3RvciByZXRlbnRpb24gY3JpdGVyaWEgZW1wbG95ZWQgaW4gV2Vpc21hbiBldCBhbC4gKDIwMTcpIHN1Z2dlc3RlZCByZXRhaW5pbmcgMyBmYWN0b3JzIGZvciBhbGwgb2YgdGhlIGFnZSBncm91cHMgaW5jbHVkZWQgaW4gU3R1ZHkgMzsgc2VlIENoYXB0ZXIgSUlJLiBJbiBjb250cmFzdCwgcGFyYWxsZWwgYW5hbHlzaXMgc3VnZ2VzdGVkIHJldGFpbmluZyAyIGZhY3RvcnMgKGluc3RlYWQgb2YgMykgZm9yIHlvdW5nZXIgY2hpbGRyZW47IGFuZCBtaW5pbWl6aW5nIEJJQyBzdWdnZXN0ZWQgcmV0YWluaW5nIDQgZmFjdG9ycyAoaW5zdGVhZCBvZiAzKSBmb3IgYWR1bHRzLCBhbmQgMSBmYWN0b3IgKGkuZS4sIGEgIm51bGwiIHNvbHV0aW9uKSBmb3IgeW91bmdlciBjaGlsZHJlbiAoYWdlcyA0LTZ5KS4gU2VlIEZpZ3VyZSBBLjE0LgoKYGBge3J9CiMgc3R1ZHkgMwpwbG90X2VmYV9iaWNfZDNfYWQgPC0gaGVhdG1hcF9mdW4oZWZhX2JpY19kM19hZCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYygiQk9EWSIsICJIRUFSVCIsICJNSU5EIiwgIkZhY3RvciA0IikpICsKICBsYWJzKHRpdGxlID0gIlN0dWR5IDM6IEFkdWx0cyIsIHN1YnRpdGxlID0gIjUtZmFjdG9yIHNvbHV0aW9uIikgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKCnBsb3RfZWZhX2JpY19kM180NiA8LSBoZWF0bWFwX2Z1bihlZmFfYmljX2QzXzQ2KSArCiAgbGFicyh0aXRsZSA9ICJTdHVkeSAzOiBZb3VuZ2VyIGNoaWxkcmVuLCA0LTZ5IiwgCiAgICAgICBzdWJ0aXRsZSA9ICIxLWZhY3RvciAobnVsbCkgc29sdXRpb24iKSAjKwogICMgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQpgYGAKCmBgYHtyfQpmaWd1cmVBLjE0IDwtIHBsb3RfZ3JpZChwbG90X2VmYV9iaWNfZDNfYWQsIHBsb3RfZWZhX2JpY19kM180NiwKICAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSAiQVVUTyIsIG5jb2wgPSAyLCByZWxfd2lkdGhzID0gYygxLCAxKSkKCmZpZ3VyZUEuMTRfY2FwIDwtIGFkZF9zdWIoZmlndXJlQS4xNCwgc3RyX3dyYXAoIkZpZ3VyZSBBLjE0OiBGYWN0b3IgbG9hZGluZ3MgZnJvbSBhZGRpdGlvbmFsIGV4cGxvcmF0b3J5IGZhY3RvciBhbmFseXNlcyBvZiBTdHVkeSAzLCBub3QgcmVwb3J0ZWQgaW4gQ2hhcHRlciBJSUkuIFNlZSBDaGFwdGVyIElJIGZvciBtZXRob2RzLiAoQSkgQWR1bHRzLCBzb2x1dGlvbiBzdWdnZXN0ZWQgYnkgbWluaW1pemluZyBCSUMuIChCKSBZb3VuZ2VyIGNoaWxkcmVuICg0LTZ5KSwgJ251bGwnIHNvbHV0aW9uIHN1Z2dlc3RlZCBieSBtaW5pbWl6aW5nIEJJQy4gSW4gdGhpcyBhbmQgYWxsIGZpZ3VyZXMgcG9ydHJheWluZyBmYWN0b3IgbG9hZGluZ3MsIGZhY3RvcnMgaGF2ZSBiZWVuIHBsb3R0ZWQgaW4gdGhlIHNhbWUgb3JkZXIgKEJPRFksIEhFQVJULCBNSU5EKSwgd2hlbiBhcHBsaWNhYmxlLCB0byBmYWNpbGl0YXRlIGNvbXBhcmlzb24gYWNyb3NzIHN0dWRpZXMuIEEgZmFjdG9yIGxvYWRpbmcgb2YgKzEgaW5kaWNhdGVzIGEgcGVyZmVjdGx5IHBvc2l0aXZlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIG1lbnRhbCBjYXBhY2l0eSBhbmQgdW5kZXJseWluZyBjb25zdHJ1Y3Q7IGEgbG9hZGluZyBvZiAtMSBpbmRpY2F0ZXMgYSBwZXJmZWN0bHkgbmVnYXRpdmUgcmVsYXRpb25zaGlwLiIsIDExNSksIHggPSAwLCBoanVzdCA9IDApCmBgYAoKYGBge3IgZmlndXJlQS4xNCwgaW5jbHVkZSA9IFQsIGZpZy53aWR0aCA9IDUsIGZpZy5hc3AgPSAxfQpnZ2RyYXcoZmlndXJlQS4xNF9jYXApCmBgYAoKIyMgU3R1ZHkgNAoKQWxsIG9mIHRoZSBFRkEgc29sdXRpb25zIHN1Z2dlc3RlZCBieSB0aGUgdGhyZWUgZmFjdG9yIHJldGVudGlvbiBwcm90b2NvbHMgYXJlIHJlcG9ydGVkIGluIGZ1bGwgaW4gQ2hhcHRlciBJSUksIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiB0aGUgMS1mYWN0b3IgKCJudWxsIikgc29sdXRpb24gc3VnZ2VzdGVkIGJ5IG1pbmltaXppbmcgQklDIGZvciB5b3VuZ2VyIGNoaWxkcmVuICg0LTV5KS4gU2VlIEZpZ3VyZSBBLjE1LgoKYGBge3J9CiMgc3R1ZHkgNApwbG90X2VmYV9iaWNfZDRfNDYgPC0gaGVhdG1hcF9mdW4oZWZhX2JpY19kNF80NikgKwogIGxhYnModGl0bGUgPSAiU3R1ZHkgNDogWW91bmdlciBjaGlsZHJlbiwgNC01eSIsIAogICAgICAgc3VidGl0bGUgPSAiMS1mYWN0b3IgKG51bGwpIHNvbHV0aW9uIikgIyArCiAgIyB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCmBgYAoKYGBge3J9CmZpZ3VyZUEuMTUgPC0gcGxvdF9lZmFfYmljX2Q0XzQ2CgpmaWd1cmVBLjE1X2NhcCA8LSBhZGRfc3ViKGZpZ3VyZUEuMTUsIHN0cl93cmFwKCJGaWd1cmUgQS4xNTogRmFjdG9yIGxvYWRpbmdzIGZyb20gdGhlICdudWxsJyBzb2x1dGlvbiBzdWdnZXN0ZWQgYnkgbWluaW1pemluZyBCSUMgZm9yIHlvdW5nZXIgY2hpbGRyZW4gKDQtNXkpIGluIFN0dWR5IDQuIFNlZSBDaGFwdGVyIElJIGZvciBtZXRob2RzLCBhbmQgQ2hhcHRlciBJSUkgZm9yIG90aGVyIEVGQSBzb2x1dGlvbnMgZm9yIHRoaXMgc3R1ZHkuIEEgZmFjdG9yIGxvYWRpbmcgb2YgKzEgaW5kaWNhdGVzIGEgcGVyZmVjdGx5IHBvc2l0aXZlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIG1lbnRhbCBjYXBhY2l0eSBhbmQgdW5kZXJseWluZyBjb25zdHJ1Y3Q7IGEgbG9hZGluZyBvZiAtMSBpbmRpY2F0ZXMgYSBwZXJmZWN0bHkgbmVnYXRpdmUgcmVsYXRpb25zaGlwLiIsIDMwKSwgeCA9IDAsIGhqdXN0ID0gMCkKYGBgCgpgYGB7ciBmaWd1cmVBLjE1LCBpbmNsdWRlID0gVCwgZmlnLndpZHRoID0gMiwgZmlnLmFzcCA9IDEuOH0KZ2dkcmF3KGZpZ3VyZUEuMTVfY2FwKQpgYGAKCg==